• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    linux学习日记十一 账号管理与ACL权限设置

    ====账号管理配置文件====

    vim /etc/passwd,显示系统内所有账号内容,每一行代表一个账号,比如:

    yidao:x:1000:1000:fedora17:/home/yidao:/bin/bash

    解释下这7个字段的含义:

    1:账号名称  | 2:密码  |  3:UID  |   4:GID   |   5:用户信息说明   |   6:主文件夹  |   7:shell

    vim /etc/shadow,显示密码信息,每一行代表一个账号密码信息,比如:

    yidao:$1$Bylot.Y3$kMjNj1.KyW9lS3TUuAIPd/:15614:0:99999:7:::

    解释下这9个字段含义(以:隔开)

    1:账号名称  |  2:密码  |  3:最近更改密码日期 , 与1970年1月1日比较的天数 |   4:密码不可被更改的天数(与第三个字段比较)   |   5:密码需重新更新的天数(与第三个字段比较)  |  6:密码需重新更新前的警告天数(与第五个字段比较)  |   7:密码过期后的账号宽限天数(密码失效日)(与第五个字段比较)  |  8:账号失效日期,也是与1970年1月1日比较的天数  |  9:保留

    /etc/group 文件:

    yidao:x:1000:

    用户组名称:用户组密码(已经移到/etc/gshadow中去,一般为x):GID:此用户支持的账号名称(只写改组不是其初始用户组的账号)

    groups命令可以显示该用户的属于所有的用户组,第一个为有效用户组,新建文件的时候有用

    newgrp命令切换有效用户组,新开子shell,用exit返回。

    /etc/gshadow 文件:

    root:::

    用户组名:密码列(开头为!代表无合法密码,所有无用户组管理员):用户组管理员账号:用户组下的账号

    ====新增用户useradd====

    # useradd [-u UID] [-g GID] [-G 次要用户组] [-mM] [-c 说明] [-d 主文件夹] [-s shell] [-r] 用户账号

    -M:强制不创建用户主文件夹(系统账号默认值)

    -m:强制创建用户主文件夹(一般账号默认值)

    -r:创建一个系统账号

    使用useradd创建账号至少会参考:

    /etc/default/useradd

    /etc/login.defs

    /etc/skel/*这些文件。

    详细的密码显示与修改命令chage:

    # chage [-ldEImMW] 帐号名

    -l:列出详细密码信息

    -d:后面接日期,修改shadow第三个字段(最新修改日期),格式YYYY-MM-DD

    -E:后面接日期,修改shadow第八字段(账号失效日),格式YYYY-MM-DD

    -I:后面接天数,修改shadow第七字段(密码失效日期)

    -m:后面接天数,修改shadow第四字段(密码最短保留天数)

    -M:后面接天数,修改shadow第五字段(密码最长保留天数)

    -W:后面接天数,修改shadow第六字段(密码过期前几天开始警告)

    ====账号相关数据进行微调usermod====

    # usermod [-cdegGlsuLU]  username

    -c:后面接账号说明,即/etc/passwd第五列说明

    -d:账号主文件夹,/etc/passwd第六列

    -e:后面接日期,YYYY-MM-DD格式,/etc/shadow第八字段(账号失效日期)

    -f:后面接天数,shadow第七字段(密码失效日期)

    -g:后接初始用户组,/etc/passwd第四字段,即GID字段

    -G:后接次要用户组,修改这个用户能支持的用户组,修改的是/etc/group(赋值的意思,你懂的)

    -a:与-G合用增加次要用户组的支持而非设置(append的意思,你懂的)

    -l:后接账号名称,即修改账号名称,/etc/passwd第一列

    -s:后接shell实际文件,例如/bin/bash、/bin/csh等

    -u:后接UID,/etc/passwd第三列

    -L:暂时将用户的密码冻结,让他无法登陆,其实仅仅改了/etc/shadow的密码列

    -U:将/etc/shadow密码列的!去掉,解锁密码

    几个小命令:

    # finger [-s] username:类似指纹功能,将用户相关属性列出来

    # chfn [-foph] username:修改finger属性,也就是个人信息

    # chsh [-ls] :修改shell

    # id username:查阅相关的ID信息

    ====用户组管理命令====

    # groupadd [-g gid] [-r] 用户组

    -g:后接GID

    -r:新建系统用户组

    # groupmod [-g gid] [-n group_name] 用户组名

    -g:修改GID

    -n:修改组名

    这东东一般没啥用,最好别用。

    # groupdel 用户组名

    # gpasswd groupname:给个组密码

    # gpasswd [-A user1, ...] [-M user3, ...] groupname

    -A:将groupname主控器交由后面的用户管理(该用户组的管理员)

    -M:将某些账号加入到这个组中

    # gpasswd [-rR] groupname

    -r:将groupname的密码删掉

    -R:让groupname的密码栏失效

    下面是组管理员命令:

    # gpasswd [-ad] user groupname

    -a:add

    -d:delete

    ====主机的具体权限规划ACL(Access Control List)====

    先查看是否支持acl

    # sudo dumpe2fs -h /dev/sda5 | grep acl

    设置acl权限:

    # setfacl [-bkRd] [{-m|-x} acl参数] 目标文件名

    参数:

    -m:设置后续的acl参数给文件使用,不可与-x合用

    -x:删除后续的acl参数,不可与-m合用

    -b:删除所有的acl参数

    -k:删除默认的acl参数,关于所谓的默认参数等等

    -R:递归设置acl,亦包括子目录也

    -d:设置默认的acl参数!只对目录有效,在该目录下新建数据会引用此默认值

    设置用户规则:u:[用户账号列表]:rwx

    # touch text.txt

    # setfacl -m u:yidao:rx  text.txt

    # setfacl -m u::rx text.txt  ==> 代表对该文件的所有者(user)设置

    # getfacl text.txt ==>查看acl设置

    里面有个mask:表示用户或者用户组的权限必须要存在于mask的权限范围内才会生效,即有效权限 effective permission的意思

    设置用户组规则:g:[用户组列表]:rx text.txt

    # setfacl -m g:yidao:rx text.txt

    设置mask的规则: m:[rwx] text.txt

    # setfacl -m m:rx text.txt

    针对目录的ACL的权限设置能够被子目录所继承的话,设置规范:

    d:[u|g]:[用户|用户组]列表:[rwx]

    切换到root身份的时候使用:

    ====用户身份切换====

    # su -

    # su – -c ‘head -n 3 /etc/shadow’  ==> 执行完root命令后自动返回当前用户

    # sudo [-b] [-u 新用户账号] command

    -b:后续命令让系统自动执行,不与目前的shell环境产生影响

    -u:后面接用户名,没有就代表root

    # sudo -u sshd touch /tmp/mysshd

    # sudo -u testuser sh -c “mkdir ~testuser/www; cd ~testuser/www; echo ‘fuck you’ > index.html”

    visudo  编辑/etc/sudoers文件:

    yidao  ALL=(ALL)    ALL

    用户账号   登录者的来源主机号=(可切换的身份)   可执行的命令

    %yidao  ALL=(ALL)    ALL  ==>注意%代表对用户组设置

    %yidao  ALL=(ALL)    ALL  NOPASSWD:  ALL  ==>免密码功能

    通过别名设置visudo:

    # visudo

    User_Alias ADMUSERS = myuser1, myuser2

    Host_Alias  www.springzoo.com, www.google.com.hk

    Cmnd_Alias ADMCMD = !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root

    ADMUSERS  ALL=(Host_Alias)  ADMCMD

    sudo搭配su输入自己的密码变成root用户,然后以后就不用输入sudo了

    # visudo

    User_Alias  ADMINS = yidao, test…

    ADMINS ALL=(root) /bin/su -

    ====PAM模块(Pluggable Authentication Modules)====

    可以编辑/etc/nologin.txt让shell为/sbin/nologin的用户登录时候显示消息给他看

    PAM会调用在目录/etc/pam.d/command文件对每个command进行认证,文件名与程序名一样

    ====查询用户:====

    w/who/last/lastlog   不解释

    用户对谈:write,mesg,wall

    先用w查看当前用户

    # write 用户账号  [用户所在终端接口]

    # write yidao [pts/2]

    最后按CTRL + D结束输入

    # mesg [-n|y]  ==> 查看自己的消息,-n禁止别人的弹出消息

    # wall  ”Hello everybody…”  ==> 广播

    ====用户邮件====

    # mail username@localhost -s “邮件标题”

    正文结束时,最后一行输入一个.即可

    ==============================END==============================

    上一篇:linux学习日记十 学习shell script
    下一篇:linux学习日记十二 磁盘配额(quota)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    linux学习日记十一 账号管理与ACL权限设置 linux,学习,日记,十一,账号,