鸟哥Linux第十三章-Linux账号管理与ACL权限设置笔记

  1. 文件判别它的拥有者和用户组是利用/etc/passwd里的UID和/etc/group/里的GID,而不是用户名。

  2. 改变UID,用户家目录下的UID并没有 改变,可导致用户进入不了自己的家目录。

  3. 用户登录主机获取shell的过程:1输入账号密码,系统查找/etc/passwd里是否有你输的账号,若没有则退出,有则读取UID和/etc/passwd的GID,以及家目录和shell设置。2进入/etc/shadow核对密码,OK则进入shell。

  4. /etc/passwd:一行一个账号,第一行是root,UID是0,每一行有七个东西,用:分割。下面的两个文件就是根据这个文件找出来的。
    例如:root:x:0:0:root:/root:/bin/bash
    账号名称:密码:UID:GID:用户信息说明栏:家目录默认/home:shell

  5. /etc/shadow:有九个字段,记录密码。root可使用passwd修改普通用户密码而不需旧密码。
    例如:bin:*:16372:0:99999:7:2::
    账号名称:密码(默认权限-rw-------或----------):最近修改密码的日期:多少天不能修改:需要再次修改天数:警告天数7:过期后宽限天数2:账号失效日期:保留

  6. /etc/group:每一行代表一个用户组,四栏。
    例如:root:x:0:
    组名:用户组密码:GID:里面的账号(在这里加上用户名即可加入该用户组,加入多个时,不能有空格)

  7. 有效用户组(effective group)与初始用户组(initial group)
    GID就是初始用户组,用户登录即主动获取的,所以此用户组肯定有此用户,所以第四栏不必再写此用户名,而其他用户组的第四栏需要加上用户名表示有此用户或加入此用户。

  8. groups:查看用户的用户组,第一个输出的是有效用户组,若新建一个文件那此文件的用户组就是有效用户组。

  9. newgrp:切换有效用户组,但必须是在已存在的用户组之间切换。而且在切换用户组的同时,此时的shell变成了子shell,也就是说新的有效用户组在子shell中,环境设置不变,但用户的用户组权限随着有效用户组的变化产生变化,输入exit回到原本的shell。

  10. /etc/gshadow:最大用处建立用户组管理员。
    例如:root:::
    组名:密码栏(为空或以#开头表示无有效密码,即无用户组管理员。):用户组管理员的账号:其中的用户(与/etc/group一样)

  11. useradd
    -u:UID
    -c:说明栏
    -g:初始用户组
    -G:次要用户组
    -s:shell
    -d:家目录
    -r:建立系统账号
    例如:useradd wang默认会建立使用者家目录,且权限为700,并且会建立一个重名的初始用户组。并且别忘了使用passwd来设置密码。

  12. 系统账号(system account)UID在1000以下,且不会主动建立家目录,主要用来执行系统所需服务的权限设置。

  13. passwd,只有passwd表示修改自己的密码。
    -l:lock,密码失效
    -u:unlock密码相关参数。
    -S:列出
    –stdin:前一个管道的信息作为密码的输入。例如echo “abc333” | passwd --stdin wang

  14. chage:修改账号密码的有效期限
    -l:列出账号详细信息。

  15. usermod:修改账号信息。
    -c:加入账号说明
    -L:暂时冻结密码
    -U:解锁

  16. userdel:删除用户相关数据。
    -r:连同使用者的家目录也一起删除。

  17. useradd,usermod,userdel都是管理员能够使用的命令。

  18. 一般用户查询修改命令。
    id:查询别人或自己的UID/GID信息。
    finger:查看用户相关信息。
    chfn(change finger):修改个人属性。
    chsh:change shell

  19. groupadd:
    -g:GID,最好小于1000。
    -r:建立系统用户组。

  20. groupmod,groupdel

  21. gpasswd:用户组管理员功能
    gpasswd groupname表示设置组密码。
    -A:将管理权交给后面的使用者管理。
    -M:加入用户。
    -r:删除组密码。
    -R:让密码失效。

  22. ACL(访问控制列表Access Control List):可以针对单一用户,单一文件或目录进行权限设置。主要针对特殊权限的使用状况。针对用户(user),用户组(group),默认属性(mask,有效权限)设置权限。

  23. ACL设置技巧
    setfacl:设置某个文件或目录的ACL规范
    setfacl:-m:设置后续的ACL参数给文件使用,不可与-x合用。
    -x:删除后续的ACL参数,不可与-m合用。
    setfacl -m u/g/m::rwx acl_test:u后无用户表示设置文件拥有者的ACL。
    getfacl:获取某个文件或目录的ACL选项
    mask(有效权限effective permission):意义是用户或用户组所设置的权限必须要存在于mask的权限范围内才会生效。
    使用默认权限设置目录下文件的默认(default)ACL:
    例如:setfacl -m d:u/g:myuser:rx /srv/projecta
    get /srv/projecta

  24. 用户身份切换
    su:什么都不加表示non-login shell,很对原本的变量不会被修改。
    -:表示login-shell登录系统,若不加名称则是root。最好加-。
    -l:与- 类似,但后面要加账号也是login-shell。
    -m:与-p一样表示使用当前的环境设置,而不读取新使用者的配置文件。
    -c:只使用新身份进行一次命令,后面接命令。
    exit:退出
    使用root切换成任何用户不需要密码,反之需要密码。
    sudo:执行仅需要自己密码,并非所有用户都可以执行sudo命令,而是/etc/sudoers内的用户。
    例如:sudo -u sshd sh -c "mkdir ~sshd/www; cd ~sshd/www"表示以sshd的身份执行命令,其中sh -c表示bash执行一连串命令。
    /etc/sudoers内设置过语法,直接以vi设置可能会破坏语法,所以最好使用visudo去修改。visudo就是利用vi将/etc/sudoers文件调出来进行修改。
    visudo的设置方法:
    1单一用户可使用root所有命令
    visudo
    在root ALL= (ALL) ALL下面加,98行左右(可以使用sudo的账号,主机,可切换成的身份,命令)
    user ALL=(ALL) ALL
    2用户组内的用户都可执行root命令,只需把一个用户加入这个用户组
    visudo
    %group ALL= (ALL) ALL,%代表后面接用户组,106行左右(修改,#拿掉)
    usermod -a -G group user 将user加入group的支持,这样user就能执行root的命令了。
    %group ALL= (ALL) NOPASSWD: ALL即可免密,保存退出。
    3有限制的命令操作
    visudo
    user ALL= (root) /user/bin/passwd必须是绝对路径
    4利用别名创建visudo(账号与命令别名)
    User_Alias USER(大写) = user1, user2, user3
    Cmnd_Alias COMMAND(大写) = command1, command2
    USER ALL= (root) COMMAND

  25. 用户的特殊shell与PAM模块(当一个账号不能登录系统但可访问一个服务时,使用PAM模块Pluggable Authentication Modules插入式验证模块)
    系统账号的shell是/sbin/nologin,不需要登录系统,也无法登录shell,但可以使用系统资源。建立/etc/nologin.txt文件可以设置拒绝用户登录系统的原因。
    PAM是一套应用程序编程接口(Application Programming interface ,API)它提供了一连串的验证机制,用户将验证需求告知PAM,它就会返回验证结果。
    PAM用来验证的数据就是模块, 它有多个模块,其中pam_cracklib.so模块可以判断密码是否在字典里面。
    passwd调用PAM的流程
    1用户执行/usr/bin/passwd这个程序,并输入密码。
    2passwd调用PAM模块进行验证密码。
    3PAM到/etc/pam.d/中找寻与程序passwd同名的配置文件。
    4根据/etc/pam.d/passwd内的设置,引用相关的PAM模块进行验证。
    5将验证结果返回给passwd。
    /etc/pam.d/里的配置文件:
    每一行分为三个字段:验证类别(type),控制标准(control flag),PAM模块与该模块的参数。
    验证类别:auth:检验用户身份。account:检验用户的权限(密码)。session:记录登录注销信息。password:修改密码。
    控制标识:就是验证通过的标准,用于管控验证的控制
    1程序开始 验证开始—required(成功或失败)—requisite(失败)— 验证失败,验证结束—程序后续动作。
    2 程序开始 验证开始—required(成功或失败)—requisite(成功)sufficient—验证成功,验证结束 —或者程序后续动作。
    3 程序开始 验证开始—required(成功或失败)—requisite(成功)sufficient—验证失败optional—验证结束 —程序后续动作。

  26. 几个较常用的PAM模块
    1pam_securetty.so:限制系统管理员只能从安全的终端登录,安全终端就写在/etc/securetty这个文件中。
    2pam_nologin.so:这个模块可以限制一般用户是否能够登录主机,当/etc/nologin文件存在时,一般用户均无法再登录系统。但已登陆的不受影响。与/etc/nologin.txt不同。
    3pam_console.so:系统某些问题通过特殊终端接口登录系统。

  27. login的PAM验证机制流程1验证阶段(auth)2授权阶段(account)3密码阶段(password)4回话阶段(session)

  28. Linux主机上的信息传递
    查询用户:id,finger,last,
    w/who:目前已登录在系统上面的用户
    lastlog:它会读取/var/log/lastlog文件,就能知道每个账号最近登陆的时间。

  29. 用户对谈:write 使用者账号 使用者所在终端界面
    mesg n/y接受与否
    wall “Hello”:对所有人广播

  30. mailbox放置在/var/spool/mail,一个账号一个mailbox。
    寄邮件:mail -s “标题nice to meet you.” user

  31. 检查账号的工具
    pwck:检查/etc/passwd这个账号内的信息
    pwconv:将/etc/passwd的密码移动到/etc/shadow中
    chpasswd:读入未加密前的密码,加密后,将密码写入/etc/shadow

你可能感兴趣的:(鸟哥Linux私房菜学习笔记)