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

相关推荐