zoukankan      html  css  js  c++  java
  • linux用户和用户组

    --只有root用户才能够创建一个新用户,如下的命令将新建一个登录名user1的用户

    useradd user1

    --这个用户还不能够登录,因为还没给它设置初始密码,在默认情况下,将会在/home目录下新建一个与用户名相同的用户主目录。
    --新增一个用户的同时会创建一个新组,这个组与该用户同名,而这个用户就是该组的成员

    --如果你想让新的用户归属于一个已经存在的组,则可以使用如下命令:

    useradd -g usergroup1 user1

    --而如果想让其再属于一个组usergroup2,那么使用:

    useradd -G usergroup2 user1

    --passwd命令为其设置一个初始密码。

    --删除一个用户

    userdel -r 用户名

    --增加一个组

    groupadd <组名>

    --删除一个组

    groupdel <组名>

    --查看当前文件夹的组 用户

    ll | grep ftp

    查看当前登录用户名

    whoami

    查看当前登录用户的组内成员

    groups

    查看gliethttp用户所在的组,以及组内成员

    groups gliethttp

    /etc/group文件包含所有组
    /etc/shadow和/etc/passwd系统存在的所有用户名

    1、/etc/group 解说;

    /etc/group 文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用 户组的用户之间具有相似的特征。比如我们把某一用户加入到root用户组,那么这个用户就可以浏览root用户家目录的文件,如果root用户把某个文件 的读写执行权限开放,root用户组的所有用户都可以修改此文件,如果是可执行的文件(比如脚本),root用户组的用户也是可以执行的;

    用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去,

    2、/etc/group 内容具体分析

    /etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:
    group_name:passwd:GID:user_list

    在/etc/group 中的每条记录分四个字段:
    第一字段:用户组名称;
    第二字段:用户组密码;
    第三字段:GID
    第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;

    3, 与用户(user)相关的配置文件;

    /etc/passwd 注:用户(user)的配置文件;
    /etc/shadow 注:用户(user)影子口令文件;

    4.与用户组(group)相关的配置文件;

    /etc/group 注:用户组(group)配置文件;
    /etc/gshadow 注:用户组(group)的影子文件;

    5,管理用户(user)的工具或命令;

    useradd 注:添加用户
    adduser 注:添加用户
    passwd 注:为用户设置密码
    usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;
    pwcov 注:同步用户从/etc/passwd 到/etc/shadow
    pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;
    pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;
    finger 注:查看用户信息工具 id 注:查看用户的UID、GID及所归属的用户组 chfn 注:更改用户信息工具
    su 注:用户切换工具 sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,
    但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;
    visudo 注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;
    sudoedit 注:和sudo 功能差不多;

    6,管理用户组(group)的工具或命令;

    groupadd 注:添加用户组;
    groupdel 注:删除用户组;
    groupmod 注:修改用户组信息
    groups 注:显示用户所属的用户组
    grpck grpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
    grpunconv 注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;

    7, /etc/login.defs 配置文件;

    文件是当创建用户时的一些规划,比如创建用户时,是否需要家目录,UID和GID的范围;用户的期限等等,这个文件是可以通过root来定义的;

    比如Fedora 的 /etc/logins.defs 文件内容;

     1 #
     2 # Please note that the parameters in this configuration file control the
     3 # behavior of the tools from the shadow-utils component. None of these
     4 # tools uses the PAM mechanism, and the utilities that use PAM (such as the
     5 # passwd command) should therefore be configured elsewhere. Refer to
     6 # /etc/pam.d/system-auth for more information.
     7 #
     8 
     9 # *REQUIRED*
    10 #   Directory where mailboxes reside, _or_ name of file, relative to the
    11 #   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
    12 #   QMAIL_DIR is for Qmail
    13 #
    14 #QMAIL_DIR    Maildir
    15 MAIL_DIR    /var/spool/mail  #注:创建用户时,要在目录/var/spool/mail中创建一个用户mail文件; 
    16 #MAIL_FILE    .mail
    17 
    18 # Password aging controls:
    19 #
    20 #    PASS_MAX_DAYS    Maximum number of days a password may be used.
    21 #    PASS_MIN_DAYS    Minimum number of days allowed between password changes.
    22 #    PASS_MIN_LEN    Minimum acceptable password length.
    23 #    PASS_WARN_AGE    Number of days warning given before a password expires.
    24 #
    25 PASS_MAX_DAYS    99999  #注:用户的密码不过期最多的天数;
    26 PASS_MIN_DAYS    0     #注:密码修改之间最小的天数;
    27 PASS_MIN_LEN    5     #注:密码最小长度;
    28 PASS_WARN_AGE    7
    29 
    30 #
    31 # Min/max values for automatic uid selection in useradd
    32 #
    33 UID_MIN                  1000 #注:最小UID为500 ,也就是说添加用户时,UID 是从500开始的;
    34 UID_MAX                 60000 #注:最大UID为60000;
    35 # System accounts
    36 SYS_UID_MIN               201
    37 SYS_UID_MAX               999
    38 
    39 #
    40 # Min/max values for automatic gid selection in groupadd
    41 #
    42 GID_MIN                  1000 #注:GID 是从500开始;
    43 GID_MAX                 60000 #
    44 # System accounts
    45 SYS_GID_MIN               201
    46 SYS_GID_MAX               999
    47 
    48 #
    49 # If defined, this command is run when removing a user.
    50 # It should remove any at/cron/print jobs etc. owned by
    51 # the user to be removed (passed as the first argument).
    52 #
    53 #USERDEL_CMD    /usr/sbin/userdel_local
    54 
    55 #
    56 # If useradd should create home directories for users by default
    57 # On RH systems, we do. This option is overridden with the -m flag on
    58 # useradd command line.
    59 #
    60 CREATE_HOME    yes #注:是否创用户家目录,要求创建;
    61 
    62 # The permission mask is initialized to this value. If not specified, 
    63 # the permission mask will be initialized to 022.
    64 UMASK           077
    65 
    66 # This enables userdel to remove user groups if no members exist.
    67 #
    68 USERGROUPS_ENAB yes
    69 
    70 # Use SHA512 to encrypt password.
    71 ENCRYPT_METHOD SHA512 

    8、/etc/default/useradd 文件;

    通过useradd 添加用户时的规则文件;
    # useradd defaults file
    GROUP=100
    HOME=/home 注:把用户的家目录建在/home中;
    INACTIVE=-1 注:是否启用帐号过期停权,-1表示不启用;
    EXPIRE= 注:帐号终止日期,不设置表示不启用;
    SHELL=/bin/bash 注:所用SHELL的类型;
    SKEL=/etc/skel 注: 默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;


      1 后记:
      2 关于用户(user)和用户组(group)管理内容大约就是这么多;只要把上面所说的内容了解和掌握,用户(user)和用户组(group)管理就差不多了;由于用户(user)和用户组(group)是和文件及目录权限联系在一起的,所以文件及目录权限的操作也会独立成文来给大家介绍;
      3  
      4 本文只是让新手弟兄明白用户(user)和用户组(group)一些原理,所以我在写此文的时候,大多是解说内容,我的意思是通过解说和索引一些命令,让新手弟兄明白一点理论是比较重要的,技术操作无非是命令的用法;
      5 linux的用户信息保存在/etc/passwd文件中,另外,/etc/shadow文件存放的是用户密码相关信息。
      6 /etc/passwd文件格式:
      7 用户名:密码:UID:GID:用户信息:HOME目录路径:用户shell
      8 其中UID为0则是用户root,1~499为系统用户,500以上为普通用户
      9 /etc/shadow保存用户密码信息,包括加密后的密码,密码过期时间,密码过期提示天数等。
     10 用户组信息保存在/etc/group文件中.
     11 格式如下:
     12 用户组名:组密码:GID:组内帐号(多个帐号用逗号分隔)
     13 用户登录后,/etc/passwd文件里的GID为用户的初始用户组。
     14 用户的初始用户组这一事实不会再/etc/group中体现。
     15 新建用户命令:
     16 [root@local opt]#useradd 用户名 -g 初始用户组 -G 其他用户组(修改/etc/group) -c 用户说明 -u 指定UID
     17 建完用户需要为用户设置密码:
     18 [root@local opt]#passwd 用户名
     19 用户要修改自己密码命令:
     20 [root@local opt]#passwd
     21 修改用户信息命令:
     22 [root@local opt]#usermod 参数 用户名
     23 参数:
     24  -c 说明
     25  -g 组名 初始用户组
     26 -e 过期日期 格式:YYYY-MM-DD
     27  -G 组名 其他用户组
     28  -l 修改用户名
     29  -L 锁定账号(在/etc/shadow文件中用户对应密码密码串的前面加上两个叹号(!!))
     30  -U 解锁
     31 删除用户命令:
     32 [root@local opt]#userdel [-r] 用户名
     33 其中,参数-r为删除用户的home目录。
     34 其实,可能在系统其他地方也有该用户文件,要完整删除一个用户和其文件要先找到属于他的文件:
     35 [root@local opt]#find / -user 用户名
     36 然后删除,再运行userdel删除用户。
     37  
     38 查看可用shell命令:
     39 [root@local opt]#chsh -l
     40 修改自己的shell命令:
     41 [root@local opt]#chsh -s
     42  
     43 查看自己或某人UID/GID信息:
     44 [root@local opt]#id [用户名]
     45 返回信息中groups为有效用户组
     46  
     47 新增用户组命令:
     48 [root@local opt]#groupadd 用户组名
     49  
     50 修改用户组名命令:
     51 [root@local opt]#groupmod -n 名称
     52  
     53 删除用户组命令:
     54 [root@local opt]#groupdel 用户组名
     55  
     56 设置用户组密码命令:
     57 [root@local opt]#gpasswd 用户组名
     58  
     59 如果gpasswd加上参数则有其他功能
     60  
     61 设置用户组管理员命令:
     62 [root@local opt]#gpasswd -A 用户名 用户组名
     63  
     64 添加某帐号到组命令:
     65 [root@local opt]#gpasswd -M 用户名 用户组名
     66  
     67 从组中删除某帐号命令:
     68 [root@local opt]#gpasswd -d 用户名 用户组名
     69  
     70 passwd相关参数操作:
     71 -l 锁用户
     72 -u 解锁用户
     73 -n 天数  密码不可改天数
     74 -x 天数  密码过期天数
     75 -w 天数  警告天数
     76  
     77  文件权限知识
     78  
     79 先看个实例:
     80 [root@local opt]#ls -al
     81 ls -al 命令是列出目录的所有文件,包括隐藏文件。隐藏文件的文件名第一个字符为'.'
     82 -rw-r--r--  1 root root    81 08-02 14:54 gtkrc-1.2-gnome2
     83 -rw-------  1 root root   189 08-02 14:54 ICEauthority
     84 -rw-------  1 root root    35 08-05 10:02 .lesshst
     85 drwx------  3 root root  4096 08-02 14:54 .metacity
     86 drwxr-xr-x  3 root root  4096 08-02 14:54 nautilus
     87  
     88 列表的列定义如下:
     89 [权限属性信息] [连接数] [拥有者] [拥有者所属用户组] [大小] [最后修改时间] [文件名]
     90  
     91 权限属性列表为10个字符:
     92 第一个字符表示文件类型,d为目录 -为普通文件 l为连接 b为可存储的接口设备 c为键盘鼠标等输入设备
     93 23、4个字符表示所有者权限,56、7个字符表示所有者同组用户权限,89、10为其他用户权限
     94 第二个字符表示所有者读权限,如果有权限则为r,没有权限则为-
     95 第三个字符表示所有者写权限,如果有权限则为w,没有权限则为-
     96 第四个字符表示所有者执行权限,如果有权限则为x,没有权限则为-
     97 第五个字符表示所有者同组用户读权限,如果有权限则为r,没有权限则为-
     98 第六个字符表示所有者同组用户写权限,如果有权限则为w,没有权限则为-
     99 第七个字符表示所有者同组用户执行权限,如果有权限则为x,没有权限则为-
    100 第八个字符表示其他非同组读权限,如果有权限则为r,没有权限则为-
    101 第九个字符表示其他非同组写权限,如果有权限则为w,没有权限则为-
    102 第十个字符表示其他非同组执行权限,如果有权限则为x,没有权限则为-
    103  
    104 修改文件所属组命令:
    105 [root@local opt]#chgrp [-R] 组名 文件名
    106 其中-R为递归设置
    107  
    108 修改文件的所有者和组命令:
    109 [root@local opt]#chown [-R] 用户[:用户组] 文件名
    110  
    111 修改文件访问权限命令:
    112 [root@local opt]#chmod [-R] 0777 文件名
    113  
    114 至此,用户、文件和权限相关的东西,就总结个7788了,接下来的就是,平常要敢于用各种命令,勤于看看本篇总结啦。
    115 ====================================================================
    116 linux 查看用户及用户组的方法
    117 whois
    118 功能说明:查找并显示用户信息。
    119 语  法:whois [帐号名称]
    120 补充说明:whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions 的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。
    121 ---------------------------------------------------------
    122 whoami
    123 功能说明:先似乎用户名称。
    124 语  法:whoami [--help][--version]
    125 补充说明:显示自身的用户名称,本指令相当于执行"id -un"指令。
    126 参  数:
    127 --help  在线帮助。
    128 --version  显示版本信息。
    129 ---------------------------------------------------
    130 who
    131 功能说明:显示目前登入系统的用户信息。
    132 语  法:who [-Himqsw][--help][--version][am i][记录文件]
    133 补充说明:执行这项指令可得知目前有那些用户登入系统,单独执行who指令会列出登入帐号,使用的    终端机,登入时间以及从何处登入或正在使用哪个X显示器。
    134 参  数:
    135 -H或--heading  显示各栏位的标题信息列。
    136 -i或-u或--idle  显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串。
    137 -m  此参数的效果和指定"am i"字符串相同。
    138 -q或--count  只显示登入系统的帐号名称和总人数。
    139 -s  此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题。
    140 -w或-T或--mesg或--message或--writable  显示用户的信息状态栏。
    141 --help  在线帮助。
    142 --version  显示版本信息。
    143 ----------------------------------------------------
    144 w
    145 功能说明:显示目前登入系统的用户信息。
    146 语  法:w [-fhlsuV][用户名称]
    147 补充说明:执行这项指令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w
    148 指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
    149 参  数:
    150 -f  开启或关闭显示用户从何处登入系统。
    151 -h  不显示各栏位的标题信息列。
    152 -l  使用详细格式列表,此为预设值。
    153 -s  使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
    154 -u  忽略执行程序的名称,以及该程序耗费CPU时间的信息。
    155 -V  显示版本信息。
    156 -----------------------------------------------------
    157 finger命令
    158 finger 命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机上的用户信息,需要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,不过要查询的网络主机需要运行finger守护进程。
    159 该命令的一般格式为:
    160 finger [选项] [使用者] [用户@主机]
    161 命令中各选项的含义如下:
    162 -s 显示用户的注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。
    163 -l 除了用-s选项显示的信息外,还显示用户主目录、登录shell、邮件状态等信息,以及用户主目录下的.plan、.project和.forward文件的内容。
    164 -p 除了不显示.plan文件和.project文件以外,与-l选项相同。 
    165 [例]在本地机上使用finger命令。
    166 $ finger xxq
    167 Login: xxq Name:
    168 Directory: /home/xxq Shell: /bin/bash
    169 Last login Thu Jan 1 21:43 (CST) on tty1
    170 No mail.
    171 No Plan. 
    172 $ finger
    173 Login Name Tty Idle Login Time Office Office Phone
    174 root root *1 28 Nov 25 09:17
    175 ……
    176 ------------------------------------------------------------------
    177 /etc/group文件包含所有组
    178 /etc/shadow和/etc/passwd系统存在的所有用户名
    179 修改当前用户所属组的方法
    180 usermod 或者可以直接修改 /etc/paaawd文件即可
    181 ----------------------------------------------------------------
    182 vlock(virtual console lock)
    183 功能说明:锁住虚拟终端。
    184 语  法:vlock [-achv]
    185 补充说明:执行vlock指令可锁住虚拟终端,避免他人使用。
    186 参  数:
    187 -a或--all  锁住所有的终端阶段作业,如果您在全屏幕的终端中使用本参数,则会将用键盘
    188 切换终端机的功能一并关闭。
    189 -c或--current  锁住目前的终端阶段作业,此为预设值。
    190 -h或--help  在线帮助。
    191 -v或--version  显示版本信息。
    192 --------------------------------------------------------
    193 usermod
    194 功能说明:修改用户帐号。
    195 语  法:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s ][-u ][用户帐号]
    196 补充说明:usermod可用来修改用户帐号的各项设定。
    197 参  数:
    198 -c<备注>  修改用户帐号的备注文字。
    199 -d登入目录>  修改用户登入时的目录。
    200 -e<有效期限>  修改帐号的有效期限。
    201 -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。
    202 -g<群组>  修改用户所属的群组。
    203 -G<群组>  修改用户所属的附加群组。
    204 -l<帐号名称>  修改用户帐号名称。
    205 -L  锁定用户密码,使密码无效。
    206 -s  修改用户登入后所使用的shell。
    207 -u  修改用户ID。
    208 -U  解除密码锁定。
    209 -------------------------------------------------------
    210 userdel
    211 功能说明:删除用户帐号。
    212 语  法:userdel [-r][用户帐号]
    213 补充说明:userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
    214 参  数:
    215 -f  删除用户登入目录以及目录中所有文件。
    216 ----------------------------------------------------------
    217 userconf
    218 功能说明:用户帐号设置程序。
    219 语  法:userconf [--addgroup <群组>][--adduser <用户ID><群组><用户名称>][--delgroup <群组>][--deluser <用户ID>][--help]
    220 补充说明:userconf实际上为linuxconf的符号连接,提供图形界面的操作方式,供管理员建立与管理各类帐号。若不加任何参数,即进入图形界面。
    221 参  数:
    222 --addgroup<群组>  新增群组。
    223 --adduser<用户ID><群组><用户名称>  新增用户帐号。
    224 --delgroup<群组>  删除群组。
    225 --deluser<用户ID>  删除用户帐号。
    226 --help  显示帮助。
    227 ------------------------------------------------------
    228 useradd
    229 功能说明:建立用户帐号。
    230 语  法:useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ][-u ][用户帐号] 或 useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ]
    231 补充说明:useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
    232 参  数:
    233 -c<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。 
    234 -d<登入目录>  指定用户登入时的启始目录。
    235 -D  变更预设值.
    236 -e<有效期限>  指定帐号的有效期限。
    237 -f<缓冲天数>  指定在密码过期后多少天即关闭该帐号。
    238 -g<群组>  指定用户所属的群组。
    239 -G<群组>  指定用户所属的附加群组。
    240 -m  自动建立用户的登入目录。
    241 -M  不要自动建立用户的登入目录。
    242 -n  取消建立以用户名称为名的群组.
    243 -r  建立系统帐号。
    244 -s   指定用户登入后所使用的shell。
    245 -u  指定用户ID。
    246 
    247 
    248 --mac
    249 --aliyun
    250 myAliYun88*
    251         ssh root@112.126.73.177
    252         yes
    253         root的密码    
    254 创建用户
    255 
    256     useradd -d /usr/liuzhipeng -m liuzhipeng
    257     passwd liuzhipeng
    258     
    259     vim /etc/sudoers
    260     /root
    261     :noh
    262     
  • 相关阅读:
    XML和JSON两种数据交换格式的比较
    Mysql主从安装配置
    mysqldump命令之数据库迁移
    报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost
    Java Map 排序
    Jeff Dean 光辉事迹
    动态创建的link标签不会阻塞其后动态创建的script的加载与执行
    why?
    mongo find-matches value
    mongo find-in,or,and,not
  • 原文地址:https://www.cnblogs.com/liuzhipeng/p/7571587.html
Copyright © 2011-2022 走看看