####用户的管理####
#1.系统中为什么要有用户?
用户的概念:
是系统最底层的安全设定的一部分,我们知道Linux 是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户(user)。比如我们的同事想用我的计算机,但我不想让他用我的用户名登录,因为我的用户名下有不想让别人看到的资料和信息(也就是隐私内容)这时我就可以给他建一个新的用户名,让他用我所开的用户名去折腾,这从计算机安全角度来说是符合操作规则的;当然用户(user)的概念理解还不仅仅于此,在Linux系统中还有一些用户是用来完成特定任务的,比如nobody和ftp 等,我们访问LinuxSir.Org 的网页程序,就是nobody用户;我们匿名访问ftp 时,会用到用户ftp或nobody 。
用户组的概念:
大致可以说是一组用户可以共享权利;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的;
两种用户组:
附加组(可以选择改变的)
初始组(不可改变的)
#2.用户存在的形态
#3.用户配置文件
/etc/passwd ##用户信息文件
例如:
用户名称:密码:用户id:组id:用户说明:用户家目录:用户默认使用的shell
/etc/group ##用户组信息
例如:
组名称:组密码:组id:附加组成员
/home/username ##用户家目录
/etc/skel.* ##用户骨文件(用户配置模板,在用户建立时会自动被复制到家目录中)
/etc/shells ##查看系统的shell
#4.用户的查看
whoami ##查看当前用户的名称
id username ##查看用户的id信息
id -u username ##查看用户的uid
id -g username ##查看用户的gid
id -G username ##查看用户所在的所有组的id
id -n username ##以名称显示信息
#5.用户的建立和删除
watch -n 1 tail -n 3 /etc/home;
/etc/login.defs :
/etc/login.defs文件定义了与/etc/password和/etc/shadow配套的用户限制设定。这个文件是需要的,缺失并不会影响系统的使用,但是也许会产生意想不到的错误。如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs
useradd username ##使用默认规则建立用户(规则参看/etclogin.defs)
useradd -u username ##指定用户的uid
useradd -g username ##指定用户初始组的id
useradd -G username ##指定用户的附加组
useradd -c username ##指定用户的说明文字
useradd -d username ##指定用户的家目录
useradd -s username ##指定用户的shell(系统可以用shell 系统可以用shell可在/etc/shells中查看)
userdel username ##删除用户身份
userdel -r username ##删除用户身份及用户的系统配置文件
groupadd groupname ##建立组
groupadd -g groupname ##指定组的uid
#6用户的修改
usermod -l username ##用户名称
usermod -u username ##更改用户id
usermod -g username ##初始化组id
usermod -G username ##更改附加组
usermod -aG username ##增加附加组
usermod -c “” username ##更改用户说明
usermod -d username ##更改用户家目录指向,但并没有重命令家目录,如果命令行打开这个文件目录,会提示报错
usermod -md username ##更改用户家目录指向并重命名家目录,命令打开文件不会报错
usermod -s username ##更改用户的shell
#7.用户切换
su - username ##切换用户,高级用户切换到低级用户不需要密码
##低级用户切换到高级用户或者切换到平级用户 需要后者的密码
注意:
1.用户切换后及时退出,再切换到下一个用户
2.“su -” 表示切换用户身份及用户环境;"su "表示切换用户身份但没有切换用户环境
#8.用户的认证信息
/etc/shadow ##用户的认证信息
1.用户名称:
2.用户密码:
md5,sha512两种加密方式
passwd username ##只有超级用户执行
passwd ##普通用户修改自己密码
usermod -l username ##冻结帐号
usermod -u username ##解锁
passwd -l username ##有“!!”表示 冻结帐号
passwd -u username ##解锁,“!!”消失
passwd -d username ##清空密码
3.密码最后一次被修改的时间到1970-01-01过了多长时间:
在超级用户下:
chage -d 0 westos
passwd -e westos
当此位数字为0时,用户在登陆系统时会被强制更改密码
4.密码最短有效期:
chage -m 1 westos
5.密码最长有效期:
chage -M 30 westos
passwd -x 40 westos
6.密码过期警告:
chage -W 2 westos
passwd -w 3 westos
7.密码非活跃期:
chage -I 2 westos
passwd -i 0 westos
8.帐号到期日:
chage -E "2018-11-11" westos
9.未设定用户自定义
#9.用户权力下放
1.配置文件
/etc/sudoers
2.配置命令
visudo //此命令提供语法检测
用户名称 主机名称=(执行程序身份) 命令 //当执行命令时需要用户验证
linux11 dns-server.example.com=(root) /usr/sbin/useradd
用户名称 主机名称=(执行程序身份) NOPASSWD: 命令1,“空格”命令2 //当执行命令时不要用户验证
linux11 dns-server.example.com=(root) /usr/sbin/useradd, /usr/sbin/userdel