1、(思考)系统中为什么要有用户

1.1用户   系统中最底层的安全设定,回收(限制)权利。 1.2组   共享权利。分为以下两种:   (1)附加组:由用户决定的组(每个用户不一定都有);   (2)初始组:用户不能自己决定的组(每个用户都有)。

2、用户在系统中的存在形态

  系统中的数据+系统中的若干配置文件(表格+表格调用的配置文件)

3、用户配置文件

3.1用户信息文件(/etc/passwd)   用户信息文件命令: /etc/passwd   组成: 用户名:密码:用户id:组id:用户说明:用户家目录:用户默认使用的shell ** 3.2用户组信息(/etc/group)**   用户组信息命令: /etc/group   组成: 组:组密码:组id:附加组成员 ** 3.3用户家目录(/home/username)**   用户家目录: /home/username ** 3.4用户骨文件(用户环境配置,/etc/skel.*)**   用户骨文件(用户环境配置): /etc/skel.*

4、用户的查看

  whoami: 查看当前用户的名称。   id username: 查看用户的id信息。   id -u username: 查看用户的uid信息。   id -g username: 查看用户的gid(组id)信息。   id -G username: 查看用户所在的所有组的id信息。   id -n username: 以名称显示信息。   id -un username: 显示id对应的用户名称。

5、用户/组的建立及删除

5.1用户删除 (1)userdel username: 删除用户身份,其配置文件未删除。 (2)userdel -r username: 删除用户身份及其配置文件。 5.2用户建立 (1)useradd username: 使用默认规则建立用户(规则查看etc/login.defs) (2)useradd -u uid username: 指定用户的uid。 (3)useradd -g gid username: 指定用户的初始组id。 (4)useradd -G 附加组id username: 指定用户的附加组。 (5)useradd -c “说明文字” username: 指定用户的说明文字。 (6)useradd -s shell username: 指定用户的shell(用户可可以用的shell可在/etc/shells中查看)。 (7)useradd -d 目录 username: 指定用户的家目录。 5.3组的建立和删除 (1)groupadd groupname: 建立组。 (2)groupadd -g groupname: 建立组并指定组id。 (3)groupdel groupname: 删除组。 5.4查看用户和组的建立与删除情况命令   watch -n 1 ‘tail -n 4 /etc/passwd /etc/group;ls  -1 /home’

6、用户管理

(1)usermod -l newusername oldusername: 修改用户名。 (2)usermod -u uid username: 修改用户uid。 (3)usermod -g gid username: 修改用户gid(初始组id)。 (4)usermod -G 附加组id username: 更改附加组(替换原来的附加组)。 (5)usermod -G “ ” username: 清除所有附加组。 (6)usermod -aG 附加组id username: 增加附加组。 (7)usermod -c 说明文字 username: 修改用户的说明文字。 (8)usermod -c “ ” username: 清除说明文字。 (9)usermod -d 目录 username: 更改用户家目录指向。 (10)usermod -md 目录 username: 更改用户家目录指向并重命名家目录。 (11)usermod -s newshell username: 更改用户shell。 (12)查看用户管理情况命令   watch -n 1 ‘tail -n 4 /etc/passwd /etc/group;ls  -1 /home’

7、用户切换

7.1命令   su - username: 切换用户。如果是高级用户切换到低级用户,无需密码;如果是低级用户切换到高级用户或平级用户,需要后者密码。   超级用户切换到普通用户:   普通用户切换到超级用户: 7.2注意事项(重要) (1)用户切换时需要及时退出再切换到下一个用户。 (2)“su -”表示切换用户身份及用户环境。如果去掉“-”只能切换用户身份,而不能切换用户环境。

8、用户的认证信息

8.1/etc/shadow   用户认证信息。 8.2用户认证信息的组成   用户名称:用户密码:密码最后一次被修改时间:密码最短有效期:密码最长有效期:密码过期警告:密码非活跃期:账号到期日:未设定用户自定义   普通用户bighead的认证信息:   超级用户root的认证信息: (1)密码最后一次被修改时间   当此位数字为0时,用户在首次登录系统时会被强制修改密码。   例如:分别设置最后一次被修改时间为8和0,用两种命令分别设置:   chage -d 8 username   passwd -e username (2)修改密码命令   passwd username :只有超级用户可用的修改密码命令(超级用户即可修改自身密码,也可修改普通用户密码)   超级用户修改自身密码:   超级用户修改普通用户密码:   passwd :普通用户修改自身密码。 (3)用户账号的冻结与解锁   usermod -L username :冻结账号   usermod -U username :解锁   passwd -l username :冻结账号   passwd -u username :解锁   在上述两种冻结账号与解锁的方式中,passwd方式冻结与解锁强度强于usermod方式。 (4)密码最短有效期   例如:两种命令分别设置密码最短有效期为1和3:   chage -m 1 username   passwd -n 3 username (5)密码最长有效期   例如:两种命令分别设置密码最长有效期为30和40:   chage -M 30 username   passwd -x 40 username (6)密码最长有效期   可超过规定时间的时限。   例如:两种命令分别设置密码非活跃期为2和0:   chage -I 2 username   passwd -i 0 username

(7)密码过期警告   距离密码过期还有多久给用户发出警告。   例如:两种命令分别设置密码过期警告为2和0:   chage -W 2 username   passwd -w 0 username (8)账号到期日   账号到什么时候过期。   例如:设置账号到期日为2018年12月12日:   chage -E “2018-12-12” username (9)清空密码   passwd -d username (10)查看用户认证信息更改情况命令   watch -n 1 ‘tail /etc/shadow’

9、用户权力下放

9.1配置文件   /etc/sudoers 9.2配置命令   visudo(此命令提供语法检查)   赋予普通用户超级用户的权利,有两种命令方式如下: (1)需要普通用户身份验证的命令方式:   用户名 主机名称=(执行程序身份) 命令   例如,赋予普通用户bighead增加用户和删除用户的权利:   权利测试: 添加用户: 删除用户: (2)不需要普通用户进行身份验证的命令方式:   用户名 主机名称=(执行程序身份) NOPASSWD:命令   例如,赋予普通用户bighead增加用户和删除用户的权利: 9.3下放权力测试命令   首先将超级用户切换到普通用户: su - 用户名   其次测试权利,例如测试添加用户的权利: sudo useradd username

10、(补充)linux系统下的文件操作

10.1显示文件信息(ls) (1)ls   显示当前目录下所有非隐藏文件与目录。 (2)ls -l   以长列表显示目录(或文件)信息/属性(输出的信息包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等) (3)ls -a   显示所有文件,包括隐藏文件(以“.”开头的) (4)ls -s   显示文件大小 (5)ls -S   按照文件大小排序 (7)ls -d   显示文件目录(显示文件名或目录名,不显示目录下的内容) (8)ls -s -ld   显示目录本身属性 (9)ls -R   递归显示 (10)ls -da .*   显示隐藏文件 10.2通配符 (1)*   匹配0~任意字符(除隐藏文件外)。   ls /ect/*.conf显示etc目录下,所有以.conf结尾的文件(除隐藏文件外): (2)?   匹配单个字符   例如:ls fil?:显示当前目录下所有以fi开头,后面为单个字符的文件名称(除隐藏文件)。 (3)[[:alpha:]]   单个字母   例如:ls fi[[:alpha:]]le:显示当前目录下所有以fi开头,中间为单个字母,后面为le的文件名称(除隐藏文件) (4)[[:upper:]]   单个大写字母   例如:ls fi[[:upper:]]le:显示当前目录下所有以fi开头,中间为单个大写字母,后面为le的文件名称(除隐藏文件) (5)[[:lower:]]   单个小写字母   例如:ls fi[[:lower:]]le:显示当前目录下所有以fi开头,中间为单个小写字母,后面为le的文件名称(除隐藏文件) (6)[[:digit:]]   单个数字   例如:ls fi[[:digit:]]le:显示当前目录下所有以fi开头,中间为单个数字,后面为le的文件名称(除隐藏文件) (7)[[:alnum:]]   单个数字或字母   例如:ls fi[[:alnum:]]le:显示当前目录下所有以fi开头,中间为单个字母或数字,后面为le的文件名称(除隐藏文件) (8)[[:space:]]   单个空格   例如:ls fi[[:space:]]le:显示当前目录下所有以fi开头,中间为单个空格,后面为le的文件名称(除隐藏文件) (9)[[:punct:]]   单个符号   例如:ls fi[[:punct:]]le:显示当前目录下所有以fi开头,中间为单个符号,后面为le的文件名称(除隐藏文件) (10){ }   精确匹配。例如:{1..3}表示1和2和3。 (11)[ ]   模糊匹配。例如:[1-3]表示1或2或3。 (12)^/!   非。例如:[^ac]或[!ac]都表示非a并且非c(除了a并且除了c)。 (13)[[:alpha:][:punct:]]   符号或字母   例如:ls fi[[:alpha:][:punct:]]le:显示当前目录下所有以fi开头,中间为单个符号或字母,后面为le的文件名称(除隐藏文件) (14)[![:alpha:][:punct:]]   除了符号或字母   例如:ls fi[![:alpha:][:punct:]]le:显示当前目录下所有以fi开头,中间除了单个符号或字母,后面为le的文件名称(除隐藏文件)

11、linux小知识补充

11.1元数据 (1)什么是元数据   任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode...)等等。在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。 (2)元数据管理方式   元数据管理有两种方式。集中式管理和分布式管理。集中式管理是指在系统中有一个节点专门司职元数据管理,所有元数据都存储在该节点的存储设备上。所有客户端对文件的请求前,都要先对该元数据管理器请求元数据。分布式管理是指将元数据存放在系统的任意节点并且能动态的迁移。对元数据管理的职责也分布到各个不同的节点上。大多数集群文件系统都采用集中式的元数据管理。因为集中式管理实现简单,一致性维护容易,在一定的操作频繁度内可以提供较满意的性能。缺点是单一失效点问题,若该服务器失效,整个系统将无法正常工作。而且,当对元数据的操作过于频繁时,集中的元数据管理成为整个系统的性能瓶颈。   分布式元数据管理的好处是解决了集中式管理的单一失效点问题, 而且性能不会随着操作频繁而出现瓶颈。其缺点是,实现复杂,一致性维护复杂,对性能有一定影响。 11.2强制结束进程   kill -q 进程号 11.3搜索关键字   /-关键字   例如,搜索关键字u: /-u 11.4家目录   系统中默认的目录