您的位置:首页 > 运维架构 > Linux

linux基础,用户和组管理,sudo,su

2017-11-30 00:00 260 查看
su命令

切换用户:su 用户

切换到用户家目录:su - 用户

以用户1的身份执行命令:su - -c "touch /tmp/1.txt" 用户1



切换用户出现报错,处理办法cd /etc/skel 然后cp -a .bash* /home/xxx(用户家目录),记得修改文件的权限。





sudo命令

普通用户运行sudo-----检查/var/run/sudo/下是否有时间戳文件,并检查是否过期-----未过期(过期则要输入自己用户的密码)-----检查/etc/sudoers配置文件是否有运行sudo和执行相应命令的权限-----有权限------执行命令并返回结果------退出sudo。

注释:时间戳是你输入密码后,5分钟不过期,超过5分钟即运行要再次输入自己用户的密码。
时间戳不同的系统版本位置不一样:
Centos 5.8 /var/run/sudo/
Centos 6.4 /var/db/sudo/

如果想要不输入密码,可以这样写:

user1 ALL=(ALL) NOPASSWD:/usr/bin/ls,/usr/bin/cat



* 用visudo编辑或者 vi    /etc/sudoers配置文件,没有命令需要安装yum install -y sudo
* sudoers配置文件下

注释:visudo有检查语法的功能,vi /etc/sudoers没有检查语法的功能,



root ALL=(ALL) ALL

root:user的意思,及想让谁使用sudo这个工具。
ALL=(ALL):前一个ALL为允许哪些主机/网段登入过来的账户,括号里面的ALL,为切换到哪些用户,及临时拥有该账号的权限。
ALL:允许谁用什么命令,及在这个字段写上什么命令,例:使用sudo /xx/xx(命令所在绝对路径) /root/xxx目录下的文件。

%组名 ALL=(ALL) ALL :使用方法同上。









* 只允许使用普通账户登录,而普通账户登录后,可以不输入密码就能sudo切换到root用户

user_Alias USER_SU = 用户1, 用户2(多用户用逗号隔开) 定义一个USER_SU别名,USER_SU等于组的时候,记得在前面加百分号。
Cmnd_Alias SU =/bin/su
USER_SU ALL(ALL) NOPASSWD:SU



禁用root远程登入如ssh

在/etc/ssh/sshd_config配置文件中添加
PermitRootLogin no(该命令只针对远程的ROOT登入),其他的远程用户照样可以登入

之后重启下服务,systemctl restart sshd.service
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: