linux系统中的用户管理
用户是操作者在系统中的身份,用户是系统最底层的安全机制的一部分,用户在系统中以字符和文件的形式存在。
如何管理用户是至关重要的,用户的权限对于linux的安全是至关重要的,不同的用户应该具有不同的权限,可以操作不同的系统资源。root用户具有超级权限,可以操作任何的文件。
用户的类型分为三种,超级用户,系统用户,普通用户。
超级用户:用户名为root或者USER ID(UID)为0的帐号,具有一切的权限,可以操作系统中的任何资源。root可以进行基础的文件操作及特殊的系统管理,另外可以进行网络管理,可以修改系统中的任何文件。日常工作中应该避免此类帐号,错误的操作可能会带来不可估量的损失。
系统用户:正常运行系统时所使用的账户。每一个进程运行在系统中都有一个相应的属主,比如一个进程以何种的身份运行。这些身份就是系统中对应的用户帐号。注意系统账户是不能用来登录的,比如bin,daemon,mail等。
普通用户:普通的使用者,能使用系统中的大部分资源,一定的权限受到控制。用户只对自己的目录有写的权限,读写权限受到一定的限制,从而保证系统中的安全,大部分用户属于此类。
linux的用户管理涉及到用户的帐号文件/etc/passwd,用户的密码文件/etc/shadow,用户组的文件/etc/group。
/etc/passwd
用户的信息文件
用户的名称:密码:uid:gid:说明:家目录:默认shell
/etc/group
用户组信息文件
组的名字:组密码:组id:组成员
/etc/shadows
认证信息文件
此文件一共九列,包含用户名称,用户密码,用户密码最后一次被修改的时间,用户密码最短有效期,用户密码最长有效期,密码警告期限,用户非活跃天数,用户到期日,用户自定义列
linux用户管理命令
linux提供了一系列的命令来管理用户的账户,包括用户的添加,删除,修改,用户组的添加,删除。
useradd添加用户
useradd常用参数说明
-d 指定用户登录时的起始目录,如不指定,将使用系统的默认值,一般为/home
-g 指定用户所使用的群组,可以跟多个组
-G 指定用户所使用的附加组,可以定义用户属于多个群组,每个群组使用逗号分隔
-s指定用户登入后所使用的shell,比如/bin/bash
usermod更改用户
如果对已有的用户信息进行更改,可以使用usermod,使用该命令可以修改用户的主目录,还可以修改其他的信息。
usermod常用参数的说明
-d 修改用户登录时的主目录,使用此参数对应的用户目录是不会自动建立的,需要手动建立。
-e 修改帐号的有效期限
-f 修改在密码过期多少天后关闭该帐号
-g 修改用户所属的群组
-G 修改用户所属的附加群组
-l 修改用户的帐号名称
-L 冻结用户,锁定用户密码,让密码无效
-s 修改用户登录后所使用的密码
-u修改用户的id
-U解除密码的锁定
用户切换
gnome-session-quit --force ##注销当前的用户
su - 用户名称
su - 执行时高级用户切换到低级的用户不需要密码,低级用户切换到高级的用户需要密码。平级用户之间切换也需要密码
注意:每次su切换到其他用户操作之后必须退出,然后再次切换到其他的用户,不退出的话,后台会继续运行此环境。
su与su - 的区别
su - "-"表示在用户身份切换的同时还切换了当前用户的环境。
密码管理
命令 passwd
passwd -e user1 ##会改变用户最后一次密码时间为0
passwd -n user1;passwd -m 1 user1 ##用户在一天之内不能修改密码
passwd -x 30 user1;passwd -M 30 user1##设定用户在三十天内必须修改密码
passwd -w 2 user1 ##密码过期前两天有警告输出
用户授权
权力下放文件为/etc/sudoers
此文件可以直接用vim进行编辑,但是不提供语法的检测
也可以使用visudo编辑此文件,visudo命令是提供语法检测的。
例:提供语法检测
例:创建用户权力下放给user3,注意:要用sudo去调用
例:多种命令直接下放给多个用户