一、Linux中用户的类型
1.1Linux中用户组的类型
1.Linux中用户类型
a.超级用户——用户名为root,它具有一切权限,只有进行系统维护(例如:建立用户等)或其他必要情形下
才用超级用户登录,以避免系统出现安全问题。
b.系统用户(伪用户)——是Linux系统正常工作所必需的内建的用户。主要是为了满足相应的系统进程对文件属主的要求而建立的,例如:bin、daemon、adm、lp等用户。
系统用户不能用来登录.
c.普通用户——是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类。
2.Linux中组类型
a.基本组(私有组):建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是基
本组,基本组只容纳一个用户。当把其他用户加入到该组中,则基本组就变成了附加组。
b.附加组(公有组):可以容纳多个用户,组中的用户都具有组所拥有的权利。
c.系统组:一般加入一些系统用户。
3.Linux中用户和用户组的配置文件
每个用户都有一个UID数值:
超级用户的UID——0
系统用户的UID——1~999
普通用户的UID——≥1000
在Linux中,用户账号、密码、用户组信息和用户组密码均是存放在不同的配置文件中的。
1)用户账号文件——/etc/passwd
passwd 是一个文本文件,用于定义系统的用户账号,由于所有用户都对passwd有读权限,所以该文件中只定义用户账号,而不保存口令。
passwd文件中:
每行定义一个用户账号
每行由7个字段组成,字段之间用“.”分隔,格式:
账号名称: 密码:UID: GID: 个人资料: 主目录: Shell
字段说明:
账号名称:用户登录Linux系统时使用的名称。
密码:以前是以加密格式保存密码的位置,现在密码保存在/etc/shadow文件中,此处只是密码占位符“x”或“*”。若为“x”,说明密码经过了shadow的保护
UID:用户的标识,是一个数值,用它来区分不同的用户
GID:用户所在基本组的标识,是一个数值,用它来区分不同的组,相同的组具有相同的GID。
个人资料:可以记录用户的完整姓名、地址、办公室电话、家庭电话等个人信息。
主目录:类似Windows的个人目录,同农场时/home/username,这里是username时用户名,用户执行“cd~”命令时当前目录会切换到个人主目录
Shell:定义用户登录后激活的Shell,默认是Bash Shell
2)用户密码文件——/etc/shadow
每行定义了一个用户信息,行中各字段用“:”隔开,其格式如下:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
为提高安全性,用户真实的密码采用MD5加密算法加密后,保存在配置文件中。
只有root用户可以读取。
/etc/shadow文件中的每行9个字段的含义分别为:
3)用户组账号文件——/etc/group
系统中的每一个文件都有一个用户和一个组的属主。使用“ls –l”命令可以看到每一个文件的属主和组。
系统中的每个组,在/etc/group文件中有一行记录
任何用户均可以读取用户组账户信息配置文件。
/etc/group中4段的含义(group文件字段说明)分别是
二、创建下列用户、组和组成员资格
1.添加新用户——useradd命令
命令格式: useradd [选项]
常用选项:
-c 注释信息——设定与用户相关的说明信息(如,真实姓名、邮箱地址等)。
-d 目录——设定用户的家目录(默认为/home/用户名)。
-e YYYY-MM-DD——设置用户的失效日期,此日期后将不能使用该账号。
-f 天数——指定密码到期后多少天账号被禁用,若指定为0,则表示账号到期后被立即禁用;若指定为-1,则表
示账号过期后不被禁用(即密码永不过期)。
-g 组名或GID号——为用户指定所属的基本组,该组在指定时必须已存在。
-G 组名或GID号列表——为用户指定所属的附加组,各组在指定时已存在,附加组可以有多个,组之间用“,”
分隔。
-M——不创建用户家目录。
-N——不创建与用户名同名的基本组。
-p 密码——指定用户的登录密码。
-s shell名——指定用户登录后使用的Shell,默认是bash。
-u 用户号——设置账号的UID,默认是已有用户的最大UID加1。如果同时有-o选项,则可以重复使用其他
用户的标识号。
2.为用户账号设置密码——passwd命令
命令格式:passwd [账户名]
常用选项:
-d——清空指定用户的口令。这与未设置口令的账户不同,未设置口令的账户无法登录系统,而口令为空的
账户可以。
-e——强迫用户下次登录时必须修改口令。
-i——口令过期后多少天停用账户。
-l——锁定(停用)用户账户。
-n——指定口令的最短存活期。
-S——显示账户口令的简短状态信息(是否被锁定)。
-u——解锁用户账户。
3.修改用户属性——usermod命令
命令格式:usermod [选项] username
常用的选项包括-c,-d,-m,-g,-G,-s,-u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,还可以使用如下选项:
-l 新用户名——更改账户的名称,必须在该用户未登录的情况下才能使用。
-L——锁定(暂停)用户账户,使其不能登录使用。
-U——解锁用户账户。
4.删除用户账号——userdel命令
命令格式:userdel [-r] 账户名
-r——在删除该账户的同时,一并删除该账户对应的主目录。
5.用户间切换——su(substitute user)命令
命令格式:su [用户名]
从root用户切换到任何用户不需要密码验证,而从普通用户到root或其他普通用户均需要输入目标用户的
密码且验证成功后才可切换。
su命令和su -命令区别就是:
su只是切换了root身份,但Shell环境仍然是普通用户Shell;而su -连用户和Shell环境一起切换成root身份了。
1)创建名为sysmgrs的组
[root@localhost ~]# groupadd sysmgrs
2)创建用户natasha同时指定sysmgrs作为natasha的附加组
[root@localhost ~]# useradd natasha -G sysmgrs
3)创建用户harry同时指定sysmgrs作为harry的附加组
[root@localhost ~]# useradd harry -G sysmgrs
4)创建用户sarah指定shell类型为/sbin/false(无权访问系统上的交互式shell)
[root@localhost ~]# useradd asrah -s /sbin/false
5)设置natasha、harry、sarah的密码都是123
[root@localhost ~]# passwd natasha
[root@localhost ~]# passwd harry
[root@localhost ~]# passwd sarah
6)创建用户lockuser,并指定家目录为/home/lock,然后锁定该用户
[root@localhost ~]# passwd sarah
[root@localhost ~]# usermod -L lockuser
7)创建用户limituser,gid为1555,userid为1666,让其密码在10天后过期
[root@localhost ~]# groupmod limituser -g 1555
[root@localhost ~]# useradd limituser -u 1666
[root@localhost ~]# passwd limituser -n 10
8)解锁lockuser,并设定下次登录时必须修改密码
[root@localhost ~]# usermod -U lockuser
[root@localhost ~]# passwd -e lockuser
9)让natasha具备修改harry密码的权限(sudo)
visudo
Host_Alias RHCSA=lwz
User_Alias USER11=natasha
Cmnd_Alias CHPASS=/usr/bin/passwd harry
USER RHCSA=(root) CHPASS
[root@localhost ~]# visudo
…
[root@localhost ~]# sudo passwd harry
Changing password for user harry.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
10)创建用户testuser并设置密码,修改用户名为normaluser
root@localhost ~]# useradd testuser
[root@localhost ~]# passwd testuser.
[root@localhost ~]# usermod -l normaluser testuser
11)删除lockuser
[root@localhost ~]# userdel -r lockuser
三、创建文件,并赋予权限611(两种方式,一种guoa,一种nnn)
[root@localhost ~]# chmod g-r file_test.txt
[root@localhost ~]# chmod g+x file_test.txt
[root@localhost ~]# chmod o-r file_test.txt
[root@localhost ~]# chmod o+x file_test.txt
[root@localhost ~]# chmod 611 file_test.txt
四、创建目录,并赋予权限755(两种方式一种guoa,一种nnn)
[root@localhost ~]# mkdir dir_test.dir
[root@localhost ~]# ls -ld dir_test.dir
drwxr-xr-x. 2 root root 6 Jul 21 21:43 dir_test.dir
[root@localhost ~]# chmod 755 dir_test.dir
五、创建文件,并将文件的属主和属组修改其他用户
-rw-r–r–. 1 root root 0 Jul 21 21:49 file_test.txt
[root@localhost ~]# chown ll:ll file_test.txt
[root@localhost ~]# ls -l file_test.txt
-rw-r–r–. 1 root root 0 Jul 21 21:49 file_test.txt
六、设置suid,为文件设置suid(两种方式u+s和nnn)的方式
[root@localhost ~]# chmod u+x file_test.txt
[root@localhost ~]# chmod u+s file_test.txt
[root@localhost ~]# ll file_test.txt
-rwsr–r–. 1 root root 0 Jul 21 21:49 file_test.txt[root@localhost ~]# chmod 4777 file_test.txt
[root@localhost ~]# ls -l file_test.txt
-rwsrwxrwx. 1 root root 0 Jul 21 21:49 file_test.txt
七、设置sgid,为文件设置sgid(两种方式g+s和nnn)的方式
[root@localhost ~]# chmod g+x file_test.txt
[root@localhost ~]# chmod g+s file_test.txt
[root@localhost ~]# ls -l file_test.txt
-rwsrwsrwx. 1 root root 0 Jul 21 21:49 file_test.txt[root@localhost ~]# chmod 2644 file_test.txt
[root@localhost ~]# ls -l file_test.txt
-rw-r-Sr–. 1 root root 0 Jul 21 21:49 file_test.txt
八、设置sbit,为目录设置sbit(两种方式 o+t 和nnn)的方式
[root@localhost ~]# chmod o+t dir_test.txt
[root@localhost ~]# ls -ld dir_test.dir
drwxr-xr-x. 2 root root 6 Jul 21 21:43 dir_test.dir[root@localhost ~]# chmod 1755 dir_test.txt
[root@localhost ~]# ls -ld dir_test.txt
-rwxr-xr-t. 1 root root 0 Jul 21 21:58 dir_test.txt
九、设置文件,查询文件的acl
[root@localhost ~]# getfacl final.txt
file: final.txt
owner: root
group: root
user::rw-
group::r–
other::r–
为文件设置acl用户为testuser1 权限为rwx
[root@localhost ~]# getfacl final.txt
file: final.txt
owner: root
group: root
user:testuser1:rwx
group::r–
mask::rwx
other::r–
为文件设置acl的mask:权限为r-x
[root@localhost ~]# setfacl -m m:r-x final.txt
[root@localhost ~]# getfacl final.txt
file: final.txt
owner: root
group: root
user:testuser1:rwx #effective:r-x
group::r–
mask::r-x
other::r–