Linux是一个多用户、多任务操作系统。多用户特性允许多人在Linux中创建独立的账户来确保用户个人数据的安全性。而多任务机制允许多个用户同时登录,同时使用系统的软硬件资源。
Linux用户被划分为两类:一类是根用户(root用户),也称为超级用户;另一类是普通用户。根用户是系统的所有者,对系统拥有最高的权利,可以对所有文、目录进行访问,可执行系统中的所有程序而不管文件、目录和程序的所有者同意与否。普通用户的权限有系统管理员创建时赋予。普通用户通常只能管理属于自己的主文件,或者组内共享及完全共享的文件。根用户与Windows系统中administrator地位相当,但根用户在Linux系统中是惟一的,且不允许重新命名。
一、普通用户的管理
- 添加新用户
(1)设置用户名及密码
(2)设置用户的UID
(3)添加该新用户所属用户组。每个用户都会有属于一个或多个用户组,系统添加新用户时默认添加的用户组名与新用户名相同,同时会赋予该用户组一个GID,通常GID的编号与GID的编号相同
(4)创建以新用户的用户名为名称的主目录。在大多数系统中,用户的主目录都被创建在同一个特定目录下,eg:/home。
(5)设定用户的Shell环境,默认是/bin/bash。
(6)设定用户的失效时间,默认是99999天后
(7)设定失效前发出警告的天数,默认是失效前7天
管理员可使用useradd命令来添加一个新的用户
useradd [-c comment] [-d home_dir] [-e expire_date] [-f inactive_time] [-g initial_group]
[-G group[,...]]
useradd -D[-g default_group] [-b default_home] [-f default_group] [-e default_expire_date]
[-s default_Shell]
- c comment:用户的注释说明。
- -d home_dir:用户每次登陆系统时所使用的登陆目录
- -e expire_date:账号失效 日期。
- -f inactive_days:设定从账号过期到永久停用的天数。
- -g initial_group:用户默认的用户组或默认的组ID
- -G group[,...]:设定该用户为若干用户组的成员
- -m:用户目录不存在则自动建立
- -M:不建立用户主目录,使用/etc/login.defs系统文件对用户进行设定
- -n:系统默认用户组名称与用户名称相同。
- -r:此参数用来建立系统账号。
- -Shell default_Shell:指定用户的登陆Shell,系统默认为/bin/bash
- -u uid:用户的UID值
//使用useradd命令修改系统默认值 #useradd -D -s /bin/csh #useradd -D //显示默认值/bin/bash GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/csh //默认Shell已改为/bin/csh SKEL=/etc/skel CREATE_MAIL_SPOOL=no
EG
:添加一个新用户student2,UID为502,用户组ID为100,用户目录为/home/student2,用户的默认Shell为/bin/bash,账号失效日期为2018年11月11日
#useradd student2 -u 502 -d /home/student -s /bin/bash -s 11/11/18 -g 100
2.修改用户的账号
1)修改用户基本信息
可使用usermod命令,其命令格式和useradd类似
2)修改用户密码
指定和修改用户密码的命令是passwd。根用户不仅可以修改自己的密码,还可以修改其他用户的密码;普通用户则只能修改自己的密码
passwd命令的格式为
passwd [-k] [-l] [-u] [-f] [-d] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays]
[-S] [username]
usermod -L westos ### 在用户密码前加入“!”
usermod -U westos
- -k:表示只有密码过期才需要用户重新设定密码
- -l:通过在用户的密码字段前加前缀“!”,对用户进行锁定。锁定的用户无法登陆系统,该命令只有根用户有权使用 例如:锁定student用户命令为
#passwd -l student
passwd -e westos ###会改变用户最后一次更改密码时间为0.
##用户在登陆时会被强制更改密码
change -d westos ##两个命令功能类似
密码最短有效期:
chage -m 1 westos
passwd -n 1 westos###westos用户在1天之内不能修改密码
密码最长有效期:
passwd -x 30 westos##设定westos在30天内必须该密码
chage -W 40 westos
密码警告期限:
passwd -w 2 westos ###密码过期前有两天有警告输出
chage -M
用户非活跃期限:
passwd -i 1 westos ###密码过期后仍可登陆系统的天数
chage -I 1 westos
用户到期日:
chage -E 2018-11-11 westos ##westos用户在2018-11-11不能使用
用户自定义列,目前没有启用
-S:显示指定用户的当前密码状态 如果根用户修改普通用户的密码,无需知道普通用户的原始密码
#passwd student //修改student用户密码
Changing password for user student
New UNIX password:
Retype new UNIX password:
passwd:all authentication tokens updated successfully
密码应是字母、数字及符号的组合,不应小于5个字符长例如:
#passwd student
Changing password for user student
New UNIX password: //输入3位密码
BAD PASSWORD:it is WAY too short //密码过短
Retype new UNIX password:
passwd:all authentication tokens updated succsaafully //密码过短但已经生效
##passwd student
Changing password for user student
New UNIX password:
BAD PASSWORD:it is too simplistic //密码过于简单
Retype new UNIX password:
passwd:all authentication tokens updated succsaafully//密码过于简单但已生效
3.删除用户
用userdel命令
命令格式为 userdel [-r] login
如果不加选项“-r”,则只能删除用户在系统中的账户信息,用户的主目录及相关文件依然保留在系统当中。加“-r”,则可将用户目录下的文档全部删除,同时该用户放在其他位置的文档也会被一一找出并删除
删除用户前应检查系统中是否还有该用户的相关进程正在运行。如果存在该用户哦的进程,则需等待其执行完或直接终止该用户进程。例如:可以使用ps或者top命令对进程进行查看,并使用kill命令终止该用户进程:
#ps -aux | grep "student"
student 4001 0.0 0.5 4712 666 ? S 12:15 0:00 studentproc
#kill 4001
4 .用户的临时禁用
如果不想删除用户,只是临时禁用该用户登陆系统,可以通过对/etc/paawd或/etc/shadow文件进行修改来实现,例如,可以直接丢该/etc/passwd文件中希望禁用的用户记录行,在该用户行 的行首添加“#”;也可以修改/etc/shadow文件中的密码字段,在希望禁用的用户所对应的密码字段前添加“*”或“!”:如果想重新启用该用户,只需恢复上面所做的操作。
二、根用户的管理
1.修改root密码
使用passwd命令对其进行修改
#passwd root
Changing password for user root
New password:
Retype new password:
passwd:all authentication tokens updated succsaafully
2.使用su命令切换为root
su - 用户名称
su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境
su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要
注意:每次su切换到其他用户操作之后必须退出,然后再次切换到其他用户
$whoami //显示当前用户的用户名
teacher
$su //切换为跟用户
Password:
#whoami
root
#exit //返回到用户teacher
$whoami
teacher
$su student //切换到student用户
Password:
$whoami
student
三、用户组的管理
1.添加新用户组
可以使用groupadd 命令记性用户组的添加,其命令格式如下:
groupadd [-g GID [-o]] [-r]
-
-g GID :组的GID,除非是用了-o选项,否则该值在系统中必须唯一且不能为负。该值应大于499且大于系统中已存在的任何组的GID值
-
-o :允许指定不唯一的GID ,即用新的标识符取代原用户组的标识符
-
-r创建小于500的系统组。
2.修改用户组属性
修改用户组属性的命令是groupmod
groudmod [-g GID [-o]] [-n new group name] group
- -g GID :为用户组指定新的GID ,除非是用了-o选项,否则该值在系统中必须唯一且不能为负。该值应大于499且大于系统中已存在的任何组的GID值
- -n:更改用户组名称
3.删除用户组
用groupdel命令
四、用户权限下放sudo
sudo能把某些超级权限针对性的下方,并且不需要普通用户知道 root密码,所以sudo相对于权限不限制的su来说,还是比较安全的
vim /etc/sudoers 无语法检测
visudo 有语法检测