linux系统权限和用户
/etc/skel 增加用户的时候复制该文件夹下的内容到用户家目录
/etc/login.defs 用来定义创建用户时的一些配置信息(比如说是否需要家目录 UID,GID,用户以及密码的有效期限等)
/etc/default/useradd 添加用户时一个需要调用默认的配置文件,可以使用useradd -D 参数 来修改文件里面的内容
useradd:
-c 注释信息 -d 归属的家目录 -u 设置的UID -g 分配的组 -G 分配多个组用,隔开 -s 用于shell -e 设置账户过期时间
-n 如果不使用-n 系统会自动创建于用户名相同的组
userdel:
-r 彻底删除用户和家目录以及本地邮件存储
usermod:
-e 加上用户停止日期 格式MM/DD/YY -l 更改用户登录的名称 -L冻结帐号实际上是在/etc/passwd 里面加上注释 (与useradd命令参数差不多) -U取消冻结账户
groupadd:
-g 指定组GID
passwd:
-l 锁定用户禁止用户更改密码 -u 解除锁定用户 -S 查看状态 -d 清除密码 -n 用户多少天内不能修改密码 -x 多少天后必须修改密码 -w 过期前多少天通知用户
-i 过期多少天后禁止用户登录
echo “32342d” | passwd --stdin
history -c 清除命令历史记录
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/etc/sudoers 授权规则
visodu -c 检查/etc/sudoers是否有语法错误
用户授权
授权用户 主机=(指定可以切换的用户) 可以执行的命令
chenzp ALL=(ALL) ALL
不需要输入密码 chenzp ALL=(ALL) NOPASSWD:ALL
(普通用户寻找命令的路径不一样无法做到root一样去寻找/sbin/,/usr/local/sbin等路径下的命令因此需要修改下$PATH,解决方法
在用户家目录下编辑.bash_profile文件在$PATH后改成
PATH=$PATH:$HOME/bin:/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/usr/bin:/root/bin
保存 最后再 source .bash_profile 使其生效)
实例:
允许chenzp执行/usr/bin下的所有命令 包裹passwd命令 但是不能修改root的密码
chenzp ALL=(ALL) NOPASSWD: !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
把允许执行的命令放在不允许执行的后面
远程执行sudo命令: ssh -t 用户名@远程主机IP sudo 命令 关键在参数-t 强制执行远程命令
配置sudo日志文件:yum install -y sudo syslog (centos 6.0中的是rsyslog服务 定义的类容一定要按配置文件里面的定义范围写 不然不会生效)
echo "local170.debug /var/log/sudo.log">> /etc/syslog.conf
echo "Defaults logfile=/var/log/sudo.log">> /etc/sudoers