zoukankan      html  css  js  c++  java
  • linux系统用户以及用户组管理

    用户组管理

    1.   groupadd

    功能说明:新建群组。
    语 法:groupadd [-g gid [-o]] [-r] [-f] [群组名称]
    补充说明:groupadd 可指定群组名称来建立新的群组帐号.需要时可从系统中取得新群 组值。

    参 数:
    -g <群组识别码>  设置欲使用的群组识别码,group’s id。

    实例

    [image]

    不加-g 则按照系统默认的gid创建组,跟用户一样,gid也是从500开始的

    [image]

    -g选项可以自定义gid

    2. groupdel

    功能说明:删除群组。
    语 法:groupdel [群组名称]
    补充说明:需要从系统上删除群组时,可用groupdel指令来完成这项工作。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

    实例:

    [image]

    没有特殊选项。


    3. groupmod

    功能说明:更改群组识别码或名称。
    语 法:groupmod [-g <群组识别码> <-o>][-n <新群组名称>][群组名称]
    补充说明:需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。
    参 数:
    -g <群组识别码>  设置欲使用的群组识别码。 
    -o  重复使用群组识别码。 
    -n <新群组名称>  设置欲使用的群组名称。


    用户管理

    1.  useradd

    功能说明:建立用户帐号。
    语 法:useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号] 或 useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>]
    补充说明:useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
    参 数:
    -c<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。  
    -d<登入目录>  指定用户登入时的启始目录。 
    -D  变更预设值. 
    -e<有效期限>  指定帐号的有效期限。 
    -f<缓冲天数>  指定在密码过期后多少天即关闭该帐号。 
    -g<群组>  指定用户所属的群组。 
    -G<群组>  指定用户所属的附加群组。 
    -m  自动建立用户的登入目录。 
    -M  不要自动建立用户的登入目录。 
    -n  取消建立以用户名称为名的群组. 
    -r  建立系统帐号。 
    -s<shell>   指定用户登入后所使用的shell。 
    -u<uid>  指定用户ID。

    实    例:

    [image]

    你会发现,创建test11时,加上了-M选项后,在/etc/passwd文件中test11那行的第六字段依然有/home/test11,可是ls查看该目录时,会提示该目录不存在。

    [image]

    -M选项的作用就是不创建用户的家目录。


    2.  userdel

    功能说明:删除用户帐号。
    语 法:userdel [-r][用户帐号]
    补充说明:userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
    参 数:
      -f  删除用户登入目录以及目录中所有文件。

    实例:

    [image]

    -r 选项的作用是删除用户时,连同用户的家目录一起删除。


    3.  usermod

    功能说明:修改用户帐号。
    语 法:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]
    补充说明:usermod可用来修改用户帐号的各项设定。
    参 数:
    -c<备注>  修改用户帐号的备注文字。 
    -d登入目录>  修改用户登入时的目录。 
    -e<有效期限>  修改帐号的有效期限。 
    -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。 
    -g<群组>  修改用户所属的群组。 
    -G<群组>  修改用户所属的附加群组。 
    -l<帐号名称>  修改用户帐号名称。 
    -L  锁定用户密码,使密码无效。 
    -s<shell>  修改用户登入后所使用的shell。 
    -u<uid>  修改用户ID。 
    -U  解除密码锁定。


    其它相关命令

    1.  passwd(password)

    功能说明:设置密码。
    语 法:passwd [-dklS][-u <-f>][用户名称]
    补充说明:passwd指令让用户可以更改自己的密码,而系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
    参 数:
      -d  删除密码。本参数仅有系统管理者才能使用。 
      -f  强制执行。 
      -k  设置只有在密码过期失效后,方能更新。 
      -l  锁住密码。 
      -s  列出密码的相关信息。本参数仅有系统管理者才能使用。 
      -u  解开已上锁的帐号。


    2.  su(super user)

    功能说明:变更用户身份。
    语 法:su [-flmp][--help][--version][-][-c <指令>][-s <shell>][用户帐号]
    补充说明:su可让用户暂时变更登入的身份。变更时须输入所要变更的用户帐号与密码。
    参 数:
    -c<指令>或--command=<指令>  执行完指定的指令后,即恢复原来的身份。 
    -f或--fast  适用于csh与tsch,使shell不用去读取启动文件。 
    -.-l或--login  改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。  
    -m,-p或--preserve-environment  变更身份时,不要变更环境变量。 
    -s<shell>或--shell=<shell>  指定要执行的shell。 
    --help  显示帮助。 
    --version  显示版本信息。 
    [用户帐号]  指定要变更的用户。若不指定此参数,则预设变更为root


    3.  sudo

    功能说明:以其他身份来执行指令。
    语 法:sudo [-bhHpV][-s <shell>][-u <用户>][指令] 或 sudo [-klv]
    补充说明:sudo可让用户以其他的身份来执行指定的指令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。  
    参 数:
    -b  在后台执行指令。 
    -h  显示帮助。 
    -H  将HOME环境变量设为新身份的HOME环境变量。 
    -k  结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。 
    -l  列出目前用户可执行与无法执行的指令。 
    -p  改变询问密码的提示符号。 
    -s<shell>  执行指定的shell。 
    -u<用户>  以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份。 
    -v  延长密码有效期限5分钟。 
    -V  显示版本信息。


    认识/etc/passwd/etc/shadow

    这两个文件可以说是linux系统中最重要的文件之一。如果没有这两个文件或者这两个文件出问题,则你是无法正常登录linux系统的。

    [image]

    /etc/passwd由’:’分割成7个字段,每个字段的具体含义是:

    1)用户名(如第一行中的root就是用户名),代表用户账号的字符串。用户名字符可以是大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法。虽然用户名中可以出现点,但不建议使用,尤其是首位为点时,另外减号也不建议使用,因为容易造成混淆。

    2)存放的就是该账号的口令,为什么是’x’呢?早期的unix系统口令确实是存放在这里,但基于安全因素,后来就将其存放到/etc/shadow中了,在这里只用一个’x’代替。

    3)这个数字代表用户标识号,也叫做uid。系统识别用户身份就是通过这个数字来的,0就是root,也就是说你可以修改test用户的uid为0,那么系统会认为root和test为同一个账户。通常uid的取值范围是0~65535,0是超级用户(root)的标识号,1~499由系统保留,作为管理账号,普通用户的标识号从500开始,如果我们自定义建立一个普通用户,你会看到该账户的标识号是大于或等于500的。

    4)表示组标识号,也叫做gid。这个字段对应着/etc/group 中的一条记录,其实/etc/group和/etc/passwd基本上类似。

    5)注释说明,该字段没有实际意义,通常记录该用户的一些属性,例如姓名、电话、地址等等。不过,当你使用finger的功能时就会显示这些信息的(稍后做介绍)。

    6)用户的家目录,当用户登录时就处在这个目录下。root的家目录是/root,普通用户的家目录则为/home/username,这个字段是可以自定义的,比如你建立一个普通用户test1,要想让test1的家目录在/data目录下,只要修改/etc/passwd文件中test1那行中的该字段为/data即可。

    7)shell,用户登录后要启动一个进程,用来将用户下达的指令传给内核,这就是shell。Linux的shell有很多种sh, csh, ksh, tcsh, bash等,而Redhat/CentOS的shell就是bash。查看/etc/passwd文件,该字段中除了/bin/bash外还有/sbin/nologin比较多,它表示不允许该账号登录。如果你想建立一个账号不让他登录,那么就可以把该字段改成/sbin/nologin,默认是/bin/bash。

    [image]

    再来看看/etc/shadow这个文件,和/etc/passwd类似,用”:”分割成9个字段。

    1)用户名,跟/etc/passwd对应。

    2)用户密码,这个才是该账号的真正的密码,不过这个密码已经加密过了,但是有些黑客还是能够解密的。所以为了安全,该文件属性设置为600,只允许root读写。

    3)上次更改密码的日期,这个数字是这样计算得来的,距离1970年1月1日到上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是365*(2012-1970)+1=15331。

    4)要过多少天才可以更改密码,默认是0,即不限制。

    5)密码多少天后到期。即在多少天内必须更改密码,例如这里设置成30,则30天内必须更改一次密码,否则将不能登录系统,默认是99999,可以理解为永远不需要改。

    6)密码到期前的警告期限,若这个值设置成7,则表示当7天后密码过期时,系统就发出警告告诉用户,提醒用户他的密码将在7天后到期。

    7)账号失效期限。你可以这样理解,如果设置这个值为3,则表示:密码已经到期,然而用户并没有在到期前修改密码,那么再过3天,则这个账号就失效了,即锁定了。

    8)账号的生命周期,跟第三段一样,是按距离1970年1月1日多少天算的。它表示的含义是,账号在这个日期前可以使用,到期后账号作废。

    9)作为保留用的,没有什么意义。

    认识/etc/sudoers

    用su是可以切换用户身份,如果每个普通用户都能切换到root身份,如果某个用户不小心泄漏了root的密码,那岂不是系统非常的不安全?没有错,为了改进这个问题,产生了sudo这个命令。使用sudo执行一个root才能执行的命令是可以办到的,但是需要输入密码,这个密码并不是root的密码而是用户自己的密码。默认只有root用户能使用sudo命令,普通用户想要使用sudo,是需要root预先设定的,即,使用visudo命令去编辑相关的配置文件/etc/sudoers。如果没有visudo这个命令,请使用” yum install -y sudo”安装。

    001

    默认root能够sudo是因为这个文件中有一行” root ALL=(ALL) ALL” 在该行下面加入” test ALL=(ALL) ALL”就可以让test用户拥有了sudo的权利。如果每增加一用户就设置一行;当然也可以直接为一个用户组授予sudo权限,这样整个组中的所有用户就都有了sudo的权利;

  • 相关阅读:
    ubuntu下文件安装与卸载
    webkit中的JavaScriptCore部分
    ubuntu 显示文件夹中的隐藏文件
    C语言中的fscanf函数
    test
    Use SandCastle to generate help document automatically.
    XElement Getting OuterXML and InnerXML
    XUACompatible meta 用法
    Adobe Dreamweaver CS5.5 中文版 下载 注册码
    The Difference Between jQuery’s .bind(), .live(), and .delegate()
  • 原文地址:https://www.cnblogs.com/wych/p/3855695.html
Copyright © 2011-2022 走看看