linux 用户/组相关操作

查看所有用户/组

cat /etc/passwd
cat /etc/group

添加用户

useradd 选项 用户名

-d:自定义用户的家目录,即指定用户登录默认的家目录
-e:指定帐号的有效期限
-g:指定用户所属的主组
-G:指定用户所属的附加群组
-m:自动建立用户的登入目录,系统默认会创建一个和用户名一样的家目录(默认选项)
-M:不创建用户家目录
-s:指定用户登入后所使用的shell是哪种shell
-u:指定用户ID号,默认系统会自动分配一个ID给用户
-r:指定该用户为系统账户
# 简单的添加用户,会自动创建home目录
useradd sqrtcat
# 自定义 home 目录
useradd -d /home/sqrtcat_home sqrtcat
# 指定用户组 wheel 为 sudoer 用户组
useradd -m -g wheel sqrtcat
# 禁止一切登录的账户
useradd -M -s /bin/false nginx
# 禁止ssh登录但可以ftp/sftp的账户
useradd -M -s /sbin/nologin ftp_user

删除用户

# 删除用户 但保留了home目录等相关信息
userdel sqrtcat
# 此命令执行后对应这些文件里与被删除用户相关信息也一并删除
# /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/home、/var/spool/mail
userdel -r sqrtcat

设置/更新用户密码

# 更改当前用户密码
passwd
# 更改指定用户密码
passwd sqrtcat

更改用户属性

usermod 选项 用户名

# 更改用户所属主组
usermod -g wheel sqrtcat
# 更改用户的附加组(注意会覆盖现有的附加组)
usermod -G wheel sqrtcat
# 为用户追加附加组(会在现有的附加组上继续追加)
usermod -aG wheel sqrtcat

为用户增加sudo权限

root 查看 /etc/sudoers

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
# 这里表明 wheel group 中的用户 可以使用密码获取 root 权限
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL 
# 这里表明 wheel group 中的用户 不使用密码就可以获取 root 权限
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

所以想要用户活动 sudo 权限,我们只需将其加入对用的用户组即可

# 将 sqrtcat 加入 wheel sudoer用户组 使其可以使用自己的密码执行 sudo 命令
usermod -aG wheel sqrtcat

sqrtcat 用户

# 切换至 root 不载入root用户的环境变量
sudo su root
# 切换至 root 载入root用户的环境变量
sudo su - root

查看在线用户

# 当前登入了服务器的在线用户
users

用户组相关

usermod -g 主组名 用户名 #更改主组
usermod -G 附加组名 用户名 #更改附加组
usermod -aG 附加组名 用户名 #追加附加组
gpasswd -a 用户名 附加组名 #增加附加组
gpasswd -d 用户名 附加组名 #退出附加组

# 查看当前用户的所属组
groups
# 查看指定用户的所属组
groups sqrtcat
# 增加用户组
groupadd foo
# 删除用户组(有用户以此组作为主组时不可删除,附加组时可以删除)
groupdel foo
# sqrtcat 退出附加组 wheel
gpasswd -d sqrtcat wheel
# 正在将用户“sqrtcat”从“wheel”组中删除
# sqrtcat 加入附加组 wheel
gpasswd -a sqrtcat wheel
# 正在将用户“sqrtcat”加入到“wheel”组中
# 如果想要更改用户的主组,必须使用 usermod -g

删除用户组时,要保证无用户以此组为主组(-g),但可以有做为附加组(-G)的用户

# 会自动创建 foo组 并作为 foo用户 的主组
useradd foo
groups foo
foo: foo
# 无法删除 有用户以 foo 为主组
groupdel foo
# 更改 foo用户 的主组为 bar
groupadd bar
usermod -g bar foo
groups foo
foo: bar
# foo组 作为附加组
usermod -G foo foo
groups foo
foo: bar foo
# 可以成功删除 foo组
groupdel foo
作者:big_cat原文地址:https://segmentfault.com/a/1190000043366215

%s 个评论

要回复文章请先登录注册