Linux 添加用户和组

2022年6月17日 158点热度 2人点赞 0条评论

file

引言

本文记录了 Linux 中添加用户和组的一些实用命令, 将其汇集到一起方便查找和排查问题. 缘起于一次启动 nginx 报错了, 后来发现是 nginx 这个用户没有, 随想到需要增加组和用户, 将相关命令记录于此.

cannot open /etc/group

groupadd :cannot open /etc/group, 后来看别人的博客介绍, 原来是在添加用户时, 需要涉及到 /etc/group, /etc/gshadow, /etc/shadow, /etc/passwd 这是个文件. 而且这四个文件的权限都是隐藏权限, 后来修改这四个文件的权限后在添加用户和组就可以了.

修改文件权限

chattr -i /etc/gshadow
chattr -i /etc/shadow
chattr -i /etc/group
chattr -i /etc/passwd

添加用户和组

groupadd apache
useradd -g apache apache
useradd -s /sbin/nologin -M nginx -g nginx

useradd 命令的选项:

      --badnames                do not check for bad names
  -b, --base-dir BASE_DIR       新账户的主目录的基目录
      --btrfs-subvolume-home    use BTRFS subvolume for home directory
  -c, --comment COMMENT         新账户的 GECOS 字段
  -d, --home-dir HOME_DIR       新账户的主目录
  -D, --defaults                显示或更改默认的 useradd 配置
  -e, --expiredate EXPIRE_DATE  新账户的过期日期
  -f, --inactive INACTIVE       新账户的密码不活动期
  -g, --gid GROUP               新账户主组的名称或 ID
  -G, --groups GROUPS           新账户的附加组列表
  -h, --help                    显示此帮助信息并退出
  -k, --skel SKEL_DIR           使用此目录作为骨架目录
  -K, --key KEY=VALUE           不使用 /etc/login.defs 中的默认值
  -l, --no-log-init             不要将此用户添加到最近登录和登录失败数据库
  -m, --create-home             创建用户的主目录
  -M, --no-create-home          不创建用户的主目录
  -N, --no-user-group           不创建同名的组
  -o, --non-unique              允许使用重复的 UID 创建用户
  -p, --password PASSWORD       加密后的新账户密码
  -r, --system                  创建一个系统账户
  -R, --root CHROOT_DIR         chroot 到的目录
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -s, --shell SHELL             新账户的登录 shell
  -u, --uid UID                 新账户的用户 ID
  -U, --user-group              创建与用户同名的组
  -Z, --selinux-user SEUSER     为 SELinux 用户映射使用指定 SEUSER

其他命令

# 建用户:
adduser phpq                            # 新建 phpq 用户
passwd phpq                             # 给 phpq 用户设置密码

# 建工作组
groupadd test                           # 新建 test 工作组

# 新建用户同时增加工作组
useradd -g test phpq                    # 新建 phpq 用户并增加到 test 工作组
# 注::-g 所属组 -d 家目录 -s 所用的 SHELL

# 给已有的用户增加工作组
usermod -G groupname username
gpasswd -a user group

# 临时关闭: 在/etc/shadow 文件中属于该用户的行的第二个字段 (密码) 前面加上*就可以了. 想恢复该用户, 去掉*即可.
# 或者使用如下命令关闭用户账号:
passwd peter –l

# 重新释放:
passwd peter –u

# 永久性删除用户账号
userdel peter
groupdel peter
usermod –G peter peter                  # (强制删除该用户的主目录和主目录下的所有文件和子目录)

# 从组中删除用户

# 编辑/etc/group 找到 GROUP1 那一行, 删除 A 或者用命令 gpasswd -d A GROUP

# 显示用户信息
id user
cat /etc/passwd

# 查看用户和用户组的方法
/etc/passwd                             # 用户列表文件
/etc/group                              # 用户组列表文件
cut -d : -f 1 /etc/passwd               # 查看系统中有哪些用户
cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1   # 查看可以登录系统的用户

# 查看用户操作:w 命令 (需要 root 权限)
w [username]                            # 查看某一用户
who                                     # 查看登录用户
last                                    # 查看用户登录历史记录

file

rainbow

没什么大用的码农; 贴图怪; bug制造者; 只会电脑开关机的开发;

文章评论