查看所有用户/组
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
查看用户组下的用户
查看用户组 foo 下有哪些用户

getent group foo
sudo su / su 的区别
用户如果是 sudoer,那么执行 sudo su - root 时只需要输入自己的密码,就可以切换至 root 用户。当然,切换至 其他用户 时也是输入 自己的密码。。
用户如果不是 sudoer,则无权限执行 sudo 命令,只能通过 su - root 来尝试切换至 root 用户,且要求输入 root 用户密码。当然,切换至 其他用户 时也要输入 其他用户的密码。
切换至某用户并使用指定shell执行命令
切换至 foo 用户,并使用 php 作为执行 shell,-- 后面追加执行的命令,然后退出。

su -s "$(which php)" foo -- -r "echo 'hello foo';"
相当于

su foo
$(which php) -r "echo 'hello foo'"
exit


慷慨的麦片
1 声望0 粉丝