su 切换用户
su - username
"-"可以不加,加“-”彻底的切换到另一个用户下,包括环境变量,配置文件等
不加“-”,当前目录是没有变化的。相当于获取另一个用户的身份。
(ctrl + d 登出)
su - -c "执行的命令" username
以某用户的身份执行一条命令
不指定用户:su - :普通用户切换到root
其他:如果某用户没有家目录,切换到该用户时,前缀显示为“
-bash-4.2”
如果想正常显示,先创建并指定用户的家目录,然后还需要去/etc/skel/
把家目录模板cp到该用户,然后更改这个目录的所属主和所属组。
相关命令:以user5为例
创建家目录
指定目录的所属主和所属组
复制家目录模板文件
指定这些文件的所属主和所属组(!$指上个命令的最后一个参数,复习)
sudo命令
让普通用户临时拥有另一个用户的身份去执行某个命令(相比su更安全)
visudo/vimsudo 查看sudo的配置文件
/etc/sudoers.tmp
含义 :
允许root用户在任何地方执行任何命令
模仿其格式让aaa用户拥有root身份执行一部分命令,编辑如下
aaa ALL=(ALL) /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
写命令的绝对路径,并用逗号和空格分开
aaa ALL=(ALL) NOPASSWD: /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
NOPASSWD: sudo 指定用户执行命令的时候不用输密码
设置命令别名
按照格式自定义命令别名
将命令替换为命令别名
使普通用户可以切换root下,而不输入密码
创建一个组,包含这些用户
让这个组的普通用户临时拥有root的身份去执行su命令
限制root远程登录
编辑配置文件
将允许root登录改为禁止
重启服务
此时远程登录root用户被禁止
然后登录普通用户,可以通过sudo切换到root用户下
扩展收藏:
sudo与su比较 :http://www.apelearn.com/bbs/thread-7467-1-1.html
sudo配置文件样例 :www.opensource.apple.com/source/sudo/sudo-16/sudo/sample.sudoers
sudo -i 也可以登录到root吗? :http://www.apelearn.com/bbs/thread-6899-1-1.html