Linux--系统用户和组管理

来源:互联网 发布:网络推广yes960 编辑:程序博客网 时间:2024/05/22 19:39
用户管理
    用户分类:
    按系统分:
         根用户(管理员)         用户id为0,如root

        系统用户            用户id在 1-499 之间
                      这些用户主要是系统内置的一些程序或服务
                         使用的
         
        普通用户            管理员创建的,使用、登录系统的用户
                    用户id 一般从 500 开始
    
    按作用分:
        管理员

        普通成员
    

    用户识别不是靠用户名的,而是用户id (uid)

与用户和组相关的配置文件
    /etc/passwd       帐号
    /etc/shadow      密码
    /etc/group    组名
    /etc/gshadow     组密码

    /etc/login.defs    帐号限制文件
    /etc/default/useradd    新建用户的默认规则文件
    /etc/skel     默认用户家目录模板



/etc/passwd    文件解释

    root:x:0:0:root:/root:/bin/bash

    tom:x:500:500::/home/tom:/bin/bash
    mary:x:501:501::/home/mary:/bin/bash
    
    文件由冒号分隔成7段

    第一段:用户名
    第二段:密码,x 表示密码放在 /etc/shadow
               为空表示登录不要密码
         也有把密码直接放在这里了,但这样,不太好
        
    第三段:用户id
    第四段:组id (主要组)
    第五段:注释、描述
    第六段:家目录
    第七段:使用的shell
           如果是 nologin 是不能登录的
         
/etc/shadow  解释
    tom:$6$vDEz/2Mn    $zVObUxy6QALb.8crTWB7JRsleXz56Un4Ia93ES6m8eaPcB.
        jWUwThxo9wub/H2wESuwgFJUDu51GUwm3OUshQ.:15644:0:99999:7:::
     mary::15644:0:99999:7:::


    第一段:用户名
    第二段:密码
    第三段:上次修改密码的时间(15644),表示的是距离1970年1月1日的天数
    第四段:两次修改密码的最小间隔天数
    第五段:密码的有效期
    第七段:密码到期的多少天提示
    第八段:帐号的过期时间,以距离1970年1月1日的天数来表示的
    第九段:暂时未用
    
/etc/group    
    tom:x:500:
    mary:x:501:

    第一段:组名(默认建一个用户后,会建一个同名的组)
    第二段:组密码
    第三段:组id(gid)
    第四段:组成员
    
/etc/gshadow
    tom:!::
    mary:!::

    第一段:组名
    第二段:组密码
    第三段:组管理员
    第四段:组成员

用户管理命令:
    useradd     创建用户
    格式:useradd [option]  用户名
    option:
        -g     指定gid (主要组,唯一的)
        -G    指定要加入的组(可以有多个)
        -s  使用的shell
    
    
    例: useradd tom

    注:建了用户后,会在用户的家目录下产生几个隐含的文件 .bash_profile .bashrc
       这些文件是从/etc/skel 拷来的

        
    groupadd     创建组
    格式: groupadd [option] 组名
            
    option:
        -g   指定组的id(gid)


    例:groupadd admin
    

    gpasswd 管理组
    格式: gpasswd  [option] 组名

    [option]   
        -a         为组添加成员
        -d         将成员删除

        -A        指定组的管理员
        -R        限制用户临时登录到组,只能组中的成员才可以使用本组身份

    gpasswd  组名  设置组密码
 


newusers  根据一个配置文件创建用户
    格式: newusers 文件名

    [root@s100 test]# cat myfile
        uu:x:510:508::/home/uu:/bin/bash
        uu4:x:511:510::/home/uu4:/bin/bash

    [root@s100 test]# newusers myfil    

    
passwd 设置用户密码
    格式:passwd [用户名]

    passwd 不加用户名,设置自己的密码,如果加了用户名就是设置其他用户的密码
    另:新建的用户,如果没设置密码是不能登录的


    passwd 的其它功能
    -l       锁定帐号(这种锁定实际是在密码前加 !! )
    -u      解锁

usermod 修改用户信息
    语法:usremod [option] 用户名
    
    option:
     -l   username         修改用户名
    -g   groupname          修改主要组
    -G   groupnames     修改用户加入的组
    -u   uid         修改uid
    -s   shell         修改其shell
    
    练习;把tom的用户给改掉,同时uid 改名1000,再验证看改过来没
    

userdel  删除用户
    语法:userdel [-r] 用户名

    
id     查看用户和组信息
    
    例:id
        id mary
     id tom
    id u3


su  切换用户
    su  用户名
    或
    su - 用户名

    su -   这种方式会应用新用户的环境变量(即会对新用户进行初始化),如果没有 -
           用户信息从上一个用户继承

    如果再回到上一个用户,建议使用 exit ,而不是再次 su - ...
    
    另,有时候,只想以某个用户的身份运行一些命令,那可以

    su - username -c 'command'

    例:su - mary -c 'echo $HOME'

groupmod  修改组信息
    格式:groupmod [option] group_name
 
    [option]
    -g  gid     修改组的id
    -n  group_name    修改组名

    例:将组dept 改成 abc
    groupmod -n abc dept


groups 显示当前用户加入了哪些组
    groups

newgrp  临时加入到一个组
    格式:newgrp   group_name

    exit 退出


who    查看登录到服务器的用户


wall  发广播
    wall
        输入信息
        ctrl + d 结束输入


write 给指定用户发消息
    write mary
        输入信息内容
        ctrl + d 结束输入

mesg  查看设置是否接收信息
    mesg y   --接收
    mesg n   --不接收



权限
    linux 中文件访问用户分类
     u       属主
    g    开放组
    o    其它用户

    a    所有用户


    linux 文件目录的基本权限
    r(4)    读
    w(2)    写
    x(1)    执行


    基本权限对文件、目录的作用
    r     对文件来讲,它可以看它的内容
        对目录来讲,它可以看它下面有哪些文件和子目录(ls)

    w    对文件来讲,可以修改它的内容
        对目录来讲,它可以在它下面创建子目录和文件,也可以删除目录和文件

    x     对文件来讲,它可以运行
        对目录来讲,它体现为,是否可以进去 (cd)

    能不能读文件内容取决于:
    对方件是否有读权限        

    能不能把文件删除取决于:
    看对文件的上一级目录是否有写权限

    能不能修改文件内容取决于:
    主要是看对文件是不是有写权限,

    如果对文件没有写权限,但是对它的上一级目录有
     写权限,可以在命令行下,强制修改

设置权限:
    chmod 权限指派  文件名

    权限指派的方法:
    u=rwx,g=r,o=   --指派每类用户的权限(不管原来是什么权限)
    u=rw,g=rw,o=r
    
    u+x,g-x        --在原有权限基础上进行权限的添加与去除


    755             --数字法,每类用户用1位数,第1位数,对属主设置
                     第2位数,对组设置,第3位数,对其它用户设置

    例:创建一个文件,自己可以读写、同组的用户只能读,其它用户不能访问
    touch a
    chmod u=rw,g=r,o= a
    chmod 640 a
    

    例:创建一个文件,所有用户只能读
    touch b
    chmod a=r b
    chmod u=r,g=r,o=r b
    chmod 444 b

chown 设置属主和组
    格式:chown 用户名:组名 文件名



默认权限:
    默认由umask 决定的,umask 表示要去掉的权限
    由于安全方面的考虑,文件生下来就没有执行权,所以文件和目录的默认权限计算方法:
    目录:  777 - umask
    文件:  666 - umask


    要设置文件或目录的默认权限,那就要修改umask,umask 对每个用户都可以设置为不同

修改umask方法:
    修改一个用户:
    vim ~用户名/.bashrc

         umask 222
    
        如:
        vim ~mary/.bashrc
        
        umask 222

    修改所有用户:
    vim /etc/bashrc

        umask ...

查看umask
    umask

    临时修改:
    umask 222
 

特殊权限:
    权限名       对文件的影响    对目录的影响   设置方法
   sticky(t)    不适用         只有属主才能   chmod o+t  或
                              删除自已的文件  chmod 1xxx

   suid     以拥有者的身份运行  不适用   chmod u+s 或
        (主要针对的是可执行文件)      chmod 4xxx


     sgid    以组身份运行    目录的开放组
       (针对可执行文件)  从上一级目录继承


原创粉丝点击