zoukankan      html  css  js  c++  java
  • 第六节 etc/passwd 、etc/shadow 、 useradd 、 groupadd

    调优方法
    原理:禁用atime的修改来节省cpu和内存资源。
    命令:mount noatime disk

    1、配置文件
    1. /etc/passwd
    文档结构:由":" 分隔成7个字段"username":"x":"uid":"gid":"remark":"homedirectory":"shell environment"
    默认权限:-rw-r--r--
    (1) username,用户名称
    命名规则:大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法。
    (2) x,密码空位键
    安全起见放到 /etc/shadow。
    (3) uid,用户ID
    可用ID,0-4294967294=2^32-2;
    root的uid=0;1-499系统保留;普通账户是从500开始。
    普通用户的uid可以改成0,此时系统就将其识别成root用户。
    (4) gid,主组id
    组配置文件/etc/group。
    (5) remark,注释说明
    该字段没有实际意义,通常记录用户的一些属性,例如姓名、电话、地址等等 用 chfn 更改;
    (6) home directory,用户家目录
    (7) shell environment,shell环境
    /bin/bash;/bin/false; /sbin/nologin(禁止该用户登录)。

    2. /etc/shadow
    文档结构:使用":"分隔成9个字段,“用户名:密码(密文):此密码设置日期:密码不可更改的天数:
    密码需要重置的天数:密码到期提前提醒天数:帐号失效后宽限天数:帐号失效日期:保留位”
    默认权限:----------(除了root用户,其他所有普通用户包括root组成员都没有任何权限呦)
    (1) 用户名
    是与/etc/passwd文件中的登录名相一致的用户账号。
    (2) 密码
    已加密显示密文,不可逆,但可被破解;
    !!表示密码为空
    (3)当前密码的设置日期
    此日期用设置当前密码的日期和1970年1月1日的差值来表示
    (例如上次更改密码的日期为2012年1月1日,则这个值就是 '365 x (2012-1970) + 10 + 1= 15341')
    ******************************************************************************************
    至於想要知道某個日期的累積日數,可使用如下的程式計算:

    [root@www ~]# echo $(($(date --date="2008/09/04" +%s)/86400+1))
    14126

    上述指令中,2008/09/04 為你想要計算的日期,86400 為每一天的秒數, %s 為 1970/01/01 以來的累積總秒數。 由於 bash 僅支援整數,因此最終需要加上 1 補齊 1970/01/01 當天。

    来自 <http://linux.vbird.org/linux_basic/0410accountmanager.php#shadow_file>
    *******************************************************************************************
    (4)密码不可被更改的天数(与第三段日期比较)
    值为0时,意为不限制,随时可更改。
    如果设置为20,则20天内用户不可更改密码。
    (5)密码需要重置的天数(与第三段日期比较)
    默认值是99999,远远超出电脑寿命,基本可以认为永不过期。
    (6)密码到期前提前提醒天数(与第五段日期比较)
    例:设置为7既为密码到期日提前7天提醒用户修改密码,“您的密码还有n天就要过期,请及时修改密码”。
    (7)帐号失效后宽限天数
    到期后过多少天锁定帐号
    (8)帐号失效日期
    计算方式同第三段;
    应该可以用到收费服务上。
    (9)保留位

    2、用户及用户组相关命令
    id
    作用:查看用户的uid、gid和所属组信息
    语法:id username
    例如:

    [root@web01 ~]# id essence


    uid=500(essence) gid=500(essence) groups=500(essence)

    groupadd
    作用:增加用户组
    配置文件:/etc/group & /etc/gshadow
    语法:groupadd 参数 groupname
    参数:-g 指定gid
    例如:

    [root@web01 ~]# groupadd -g 505 tst1


    [root@web01 ~]# grep "tst1" /etc/group

    tst1:x:505: 《----gid为505

    groupdel
    作用:删除用户组
    语法:groupdel groupname
    PS:单纯作为附属组的时候是可以直接删除的,但如果作为用户的主组,就不能随意删除了,需要提前把用户清空
    例如:

    [root@web01 ~]# id essence

    uid=500(essence) gid=500(essence) groups=500(essence) 《——gid代表主组


    [root@web01 ~]# groupdel essence

    groupdel: cannot remove the primary group of user 'essence' 《——提示不可删除


    [root@web01 ~]# cat /etc/group |grep "tst01"

    tst01:x:504:essence 《——tst01是essence的附属组


    [root@web01 ~]# groupdel tst01 《——可直接删除


    [root@web01 ~]# cat /etc/group |sort -t ":" -k 3 -n |tail -3

    oracle:x:502:

    webapp:x:503:

    nfsnobody:x:65534: 《——查询结果显示tst01组被删除

    useradd
    作用:增加用户
    语法:useradd 参数 username
    参数:
    -u 指定uid
    -g 指定gid或组名(但指定的组名必须存在)
    -d 指定家目录
    -M 不建立家目录,但依然会创建用户的mail目录
    -s 自定义shell环境,可控制普通用户不能登录,通过设置“/sbin/nologin”
    PS:多个用户可以共享一个主组
    PS:uid和gid分配的时候,以该id的最大数字+1

    useradd -g参数可指定一个其他用户的主组为新增用户的主组

    [root@web01 ~]# id essence

    uid=500(essence) gid=500(essence) groups=500(essence)

    [root@web01 ~]# useradd -g essence zpw02 《——制定zpw02的主组为essence

    [root@web01 ~]# id zpw02

    uid=505(zpw02) gid=500(essence) groups=500(essence) 《——zpw02的gid为500

    ==================================================


    useradd 家目录下的隐藏文件可从/etc/skel下拷贝过来


    [root@web01 zpw02]# ls -ail /home/zpw02

    total 28

    17 drwx------ 4 505 500 4096 Nov 23 19:33 . 《——因为zpw02和essence都被删除,

    2 drwxr-xr-x. 10 root root 4096 Nov 23 19:33 .. 所以uid和gid没有用户名和组名。

    19 -rw-r--r-- 1 505 500 18 Jul 18 2013 .bash_logout

    18 -rw-r--r-- 1 505 500 176 Jul 18 2013 .bash_profile

    24 -rw-r--r-- 1 505 500 124 Jul 18 2013 .bashrc

    20 drwxr-xr-x 2 505 500 4096 Nov 12 2010 .gnome2

    21 drwxr-xr-x 4 505 500 4096 Nov 12 21:19 .mozilla

    [root@web01 zpw02]# ls -ail /etc/skel

    total 28

    129852 drwxr-xr-x. 4 root root 4096 Nov 12 21:19 . 《——和用户家目录下隐藏文件相同,所以

    129797 drwxr-xr-x. 90 root root 4096 Nov 23 19:39 .. 如果创建用户时用-M属性,之后想增

    129885 -rw-r--r--. 1 root root 18 Jul 18 2013 .bash_logout 加家目录,就可以从此目录下拷贝隐藏

    129886 -rw-r--r--. 1 root root 176 Jul 18 2013 .bash_profile 文件。

    129887 -rw-r--r--. 1 root root 124 Jul 18 2013 .bashrc

    130807 drwxr-xr-x. 2 root root 4096 Nov 12 2010 .gnome2

    129872 drwxr-xr-x. 4 root root 4096 Nov 12 21:19 .mozilla

    userdel
    作用:删除用户,无参数时默认不删除家目录
    语法:userdel 参数 username
    参数:-r 删除用户的家目录和邮件目录(/var/spool/mail/username)
    例如:

    [root@web01 ~]# userdel -r zpw01 《——同时删除家目录和邮件目录

    [root@web01 ~]# ls /home

    essence lost+found oracle user3 webapp zpw zpw02

    [root@web01 ~]# ls /var/spool/mail

    essence lisi oracle root rpc webapp zpw zpw02


    [root@web01 ~]# userdel zpw02 《——不加-r属性,家目录和邮件目录还在

    [root@web01 ~]# ls /home

    essence lost+found oracle user3 webapp zpw zpw02

    [root@web01 ~]# ls /var/spool/mail

    essence lisi oracle root rpc webapp zpw zpw02

    usermod
    作用:修改用户uid、gid、家目录、附属组等信息
    语法:usermod 参数 参数内容 username
    参数
    -u 修改用户uid
    -s 修改用户shell环境
    -d 修改目录家目录
    -L 锁定用户密码,使之不能用密码登录
    -U 解锁用户密码
    -g 指定用户主组gid
    -G 指定用户附属组(1个用户可以有多个附属组)
    PS:usermod -G "" user 把附属组清空

    [root@web01 ~]# usermod -L essence

    [root@web01 ~]# cat /etc/shadow|grep "essence"

    essence:!$6$lBhElHM$UHKJjTGrCyo2upw1OlIG6F8SE09VYGTLHlBw0/MBVgIu5ZZh1e1koc7tHWDBHk4obu

    33CEe/FrSEn4bpnDpdo1:16397:0:99999:7::: 《——在原密码前增加"!"使密码失效


    [root@web01 ~]# su - essence

    [essence@web01 ~]$ exit 《——root用户可使用su命令无密码登录该用户

    logout

    [root@web01 ~]# su - zpw

    [zpw@web01 ~]$ su - essence

    Password:

    su: incorrect password 《——普通用户su登录essence时候,提示错误密码


    用另外的终端登录essence


    essence@192.168.0.80's password:

    Access denied 《——开单独终端登录时提示拒绝登录

    chfn finger

    passwd
    作用:修改用户密码
    语法:passwd 用户名
    创建密码的规则:
    长度大于10;含大小写字母数字以及特殊字符 ;不规则性;不要带有自己名字、公司名字、自己电话、自己生日等。
    扩展内容:mkpasswd 生成密码的工具,安装 expect包

    su
    作用:切换effective用户
    语法:su 用户名(改变$HOME,不改变$PATH)
    语法: su - 用户名 (改变$HOME和$PATH)
    扩展资料:http://www.aminglinux.com/bbs/thread-6912-1-1.html

    sudo
    作用:临时获得root权限(su到root需要输入root的密码不安全,所以sudo是一个好选择)
    修改配置文件命令:visudo
    安装方法: yum install -y sudo
    语法:su 正常命令输入
    配置文件:/etc/sudoers


    格式:

    user

    host=(as_user)

    commands


    内容:

    aming

    ALL=(root)

    /bin/ls

    意义是,让aming这个普通用户,拥有root的权限,针对ls这个命令。
    PS:su - -c "touch /tmp/123.txt"user 相当于用user去创建这个123文件
    PS:/etc/ssh/sshd_config 禁止root远程登录

    PS:先禁止root远程登录,用普通用户登录后,在用”sudo su -“登录root

    扩展资料:
    Keepass,管理密码软件
    Keepass官网地址: http://www.keepass.info

  • 相关阅读:
    DB2 字段操作
    解析二维码
    Eclipse tomcat 内存溢出
    hereim_美句_1
    js自定义函数默认参数的写法
    PHP和JS判断访问客户端的是PC还是移动设备
    lampp服务器配置httpd-vhosts.conf文件,设置多域名
    价值7000万的商业模式,羊毛出在狗身上,猪来买单
    确保 PHP 应用程序的安全
    美国淘金的故事
  • 原文地址:https://www.cnblogs.com/LinuxSuDa/p/4308817.html
Copyright © 2011-2022 走看看