欢迎您的光临,本博所发布之文章皆为作者亲测通过,如有错误,欢迎通过各种方式指正。

文摘  Linux中用户和用户组的操作命令详解

Linux学习 网络 422 0评论

一、用户与组的定义


windows里面的用户可以不依赖于组而单独存在,单独存在的用户权限非常低。每个用户组具有特殊权限。在Linux操作系统里,账号就是能够使用系统的人,而账号必须在某一个组里面。一旦创建出一个新的账号,也会创建出一个同名的组,不能够独立出来。


二、用户


2.1 添加用户useradd命令

格式:useradd  [选项]... 用户名

常用命令选项:

-u:修改用户id,id是用来表示账户身份的,管理员的id是0号,一般是从1000往后排

useradd -u 1100 c        //再往后创建的时候回沿用最大的id值

-d:改变家目录路径,不指定的话,就放在home目录下

useradd -d /opt/ e       

-s:登录的shell,默认的解释器是/bin/bash文件,cat /etc/shells可以查看解释器,/sbin/nologin解释器只能远程登录不能够本地登录

useradd -s /sbin/nologin e

-g:基本组,创建出来的用户会加入到指定的组中

useradd -g a g             //把g用户加入到a组里面

-G:附加组,一个用户可以存在于多个组,添加更多权限,重置附加组,不能同时添加多个附加组

useradd -G b h            //把h用户附加到b组里,查询h用户情况如下

uid=1003(h) gid=1003(h) 组=1003(h),1001(b)


所有参数

[04:22:52 root@C8-3-55 ~]#whatis useradd

useradd (8)          - 创建一个新用户或更新默认新用户信息

[04:32:14 root@C8-3-55 ~]#useradd --help

用法:useradd [选项] 登录

          useradd -D

          useradd -D [选项]

选项

  -b, --base-dir BASE_DIR       新账户的主目录的基目录
  -c, --comment COMMENT         新账户的 GECOS 字段
  -d, --home-dir HOME_DIR       新账户的主目录
  -D, --defaults                显示或更改默认的 useradd 配置
 -e, --expiredate EXPIRE_DATE  新账户的过期日期
  -f, --inactive INACTIVE       新账户的密码不活动期
  -g, --gid GROUP               新账户主组的名称或 ID
  -G, --groups GROUPS   新账户的附加组列表
  -h, --help                    显示此帮助信息并推出
  -k, --skel SKEL_DIR   使用此目录作为骨架目录
  -K, --key KEY=VALUE           不使用 /etc/login.defs 中的默认值
  -l, --no-log-init     不要将此用户添加到最近登录和登录失败数据库
  -m, --create-home     创建用户的主目录
  -M, --no-create-home          不创建用户的主目录
  -N, --no-user-group   不创建同名的组
  -o, --non-unique              允许使用重复的 UID 创建用户
  -p, --password PASSWORD               加密后的新账户密码
  -r, --system                  创建一个系统账户
  -R, --root CHROOT_DIR         chroot 到的目录
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -s, --shell SHELL             新账户的登录 shell
  -u, --uid UID                 新账户的用户 ID
  -U, --user-group              创建与用户同名的组
  -Z, --selinux-user SEUSER             为 SELinux 用户映射使用指定 SEUSER


useradd新建用户时,默认同时新建同名的用户组、用户目录及邮件文件夹

[04:49:17 root@C8-3-55 ~]#useradd sun_my;getent passwd sun_my;getent group sun_my
sun_my:x:8892:8893::/home/sun_my:/bin/bash
sun_my:x:8893:
[04:56:37 root@C8-3-55 ~]#ll -d /home/sun_my;ll /var/spool/mail/sun_my
drwx------. 3 sun_my sun_my 78 3月  28 04:55 /home/sun_my
-rw-rw----. 1 sun_my mail 0 3月  28 04:55 /var/spool/mail/sun_my


useradd新建用户默认值保存在/etc/default/useradd文件中

[04:56:49 root@C8-3-55 ~]#cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1 ## 对应shadow文件的第7列,用户密码过期的宽限期,-1表示不过期
EXPIRE= ## 对应shadow文件的第8列,用户账户的有效期,空代账户表永不过期
SHELL=/bin/bash ## 指定登录shell
SKEL=/etc/skel ## 模板,用户配置文件预置,比如说.bashrc、.profile与.vimrc等
CREATE_MAIL_SPOOL=yes ## 自动创建邮件文件夹


新建用户相关文件

/etc/default/useradd 默认属性

文件定义了新建用户的一些默认属性,比如用户的主目录、使用的shell等等

/etc/skel/* 新用户默认配置文件

用来存放新用户配置文件的目录,当我们添加新用户时,这个目录下的所有文件会自动被复制到新添加的用户的家目录下;默认情况下,/etc/skel目录下的所有文件都是隐藏文件

etc/login.defs 设置用户帐号限制的文件。该文件里的配置对root用户无效。

Linux创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID 和 GID 的范围,用户的过期时间,密码的最大长度,等等。

例:创建服务账户

-r 建立系统账户,随机分配1000以内uid,默认不生成家目录和邮箱

-u 指定uid为48,为方便在多台服务器中共同协作服务,统一环境,设定一致的uid

-g 指定主组为指定的apache,如果不指定,则生成同名主组

-s 指定登录shell,设定为/sbin/nologin

-d 指定用户目录

-c 增加描述,可读性方便理解

apache 用户名

useradd -r -u 48 -g apache -s /sbin/nologin -d /var/www -c "Apache" apache


2.2 查询用户方法

cat /etc/passwd    可以查看Linux所有用户

root:x:0:0:root:/root:/bin/bash    //用户名:x:uid:gid:家目录:解释器地址


id 用户名        //可查看某个用户

uid=1001(b) gid=1001(b) 组=1001(b)    //uid(账户名)、gid(组名)、附加组id(组名,一定包含基本组)

su - root 可以切换用户


2.3 设置用户密码

要登录某个用户,必须给用户设置密码。

①交互式设置密码方式

passwd 用户名        //管理员拥有最高权限,可设置任意用户的密码,而普通用户只能设置自己的密码,无权修改他人密码


②非交互式设置密码方式

首先echo是一个回声命令,输入什么系统就会返回什么

例:echo  123        //系统返回123

格式:echo '密码'|passwd --stdin 用户名    // |管道符将前面的输出结果交由后面处理,stbin表示以非交互式配置密码


2.4 编辑文本的小技巧

> 重定向:可以把某些文字写到某些文件中,抹掉原来的内容    //echo abc > /opt/abc

>> 追加重定向:把文字换行追加到文件中,不抹掉原来的内容


2.5 删除用户userdel

格式:userdel  用户名

选项:

-r:完全删除用户记录,即把用户在home目录下的文件全部删除

[22:16:38 root@C8-3-55 ~]#userdel --help

用法:userdel [选项] 登录

选项:

  -f, --force                   force some actions that would fail otherwise
                                e.g. removal of user still logged in
                                or files, even if not owned by the user
  -h, --help                    显示此帮助信息并推出
  -r, --remove                  删除主目录和邮件池
  -R, --root CHROOT_DIR         chroot 到的目录
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -Z, --selinux-user            为用户删除所有的 SELinux 用户映射


2.6 修改用户usermod

usermod [选项]... 用户名

选项和useradd用法一样

[22:16:00 root@C8-3-55 ~]#usermod --help

选项:

  -c, --comment 注释            GECOS 字段的新值
  -d, --home HOME_DIR           用户的新主目录
  -e, --expiredate EXPIRE_DATE  设定帐户过期的日期为 EXPIRE_DATE
  -f, --inactive INACTIVE       过期 INACTIVE 天数后,设定密码为失效状态
  -g, --gid GROUP               强制使用 GROUP 为新主组
  -G, --groups GROUPS           新的附加组列表 GROUPS
  -a, --append GROUP            将用户追加至上边 -G 中提到的附加组中,
                                并不从其它组中删除此用户
  -h, --help                    显示此帮助信息并推出
  -l, --login LOGIN             新的登录名称
  -L, --lock                    锁定用户帐号
  -m, --move-home               将家目录内容移至新位置 (仅于 -d 一起使用)
  -o, --non-unique              允许使用重复的(非唯一的) UID
  -p, --password PASSWORD       将加密过的密码 (PASSWORD) 设为新密码
  -R, --root CHROOT_DIR         chroot 到的目录
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -s, --shell SHELL             该用户帐号的新登录 shell
  -u, --uid UID                 用户帐号的新 UID
  -U, --unlock                  解锁用户帐号
  -v, --add-subuids FIRST-LAST  add range of subordinate uids
  -V, --del-subuids FIRST-LAST  remove range of subordinate uids
  -w, --add-subgids FIRST-LAST  add range of subordinate gids
  -W, --del-subgids FIRST-LAST  remove range of subordinate gids
  -Z, --selinux-user  SEUSER       用户账户的新 SELinux 用户映射


三、组


3.1 查看组

cat /etc/group 查看组

/etc/group :存储当前系统中所有用户组的信息

-Group : x  : 123 : abc,def,xyz

--组名称:组密码占位符:组编号:组中用户名列表


/etc/gshadow:存储当前系统中用户组的密码信息

-Group: *  :    : abc,def,xyz

--组名称:组密码:组管理者:组中用户名列表

注:*!表示组密码为空;


/etc/passwd :存储当前系统中所有用户的信息

--user : x : 123 :456: xxxxxxxx:/home/user : /bin/bash

--用户名:密码占位符:用户编号:用户注释信息:用户主目录:shell类型


/etc/shadow:存储当前系统中所有用户的密码信息

--user : vf;/Zu8sdf…  :::::

--用户名:密码:::::


3.2 添加组groupadd

groupadd  组名

选项:

-g:修改组号    //groupadd -g 1888 group2


3.3 查看文档里面的某几行

head -数字(前几行) 路径下的文件

tail -数字(后几行) 路径下的文件

head -3 /etc/group | tail -1        //只看第三行利用管道符


3.4 管理附加组gpasswd

选项:

-a 添加:gpasswd -a 用户名 组名

-d 删除:gpasswd -d 用户名 组名


3.5 修改组groupmod

选项:

-g:改组id    //groupmod -g 1888 abc

-n:改组名    //groupmod -n abcd abc


3.6 删除组groupdel

groupdel 组名


四、常用命令


Linux中用户和用户组的基本命令

创建一个用户组:groupadd sexy #创建了一个名字为sexy的用户组;

改变用户组名:groupmod –n market sexy #新组名在前,旧组名在后;

改变用户组编号:groupmod –g 668 market # 把用户组market的组名改为668;

直接创建用户组加编号:groupadd –g 888 boss #创建一个用户组,然后直接指定用户组名;

删除用户组:groupdel market #删除了用户组maket;(删除用户组之前需要先删除用户,否则在这个用户组中的用户的配置文件会出错,权限的影响)

往用户组中添加用户:groupadd –g sexy sdf #向用户组sexy中添加用户sdf;

创建用户的同时,指定用户的个人文件夹:useradd –d /home/xxx imooc

给用户添加备注:usermod –c 备注信息 用户名

改变用户名:usermod –l 新的用户名 旧的用户名

给用户指定新的问价夹:usermod –d /home/文件夹 用户名

用户切换用户组:usermod –g 用户组名用户名

删除用户: userdl 用户名(不删除个人文件夹)

删除用户同时删除用户文件夹:userdel –r 用户名

禁止普通用户登录服务器:在/etc/ 下创建nologin文件:touch /etc/nologin

锁定账户操作:password –l 用户名

解锁账户:password –u 用户名

设置无密码登录账户:password –d 用户名

给用户添加附属组:gpasswd –a 用户名附属组名(添加多个附属组用“,”隔开)

切换到附属组:newgrp 用户组

取消附属组:gpasswd –d 用户名附属组

创建用户是指定他的主要组和附属组:useradd –g 主要组名称 –G 附属组名称

给用户组设主密码:gpasswd 用户组名

切换用户:su 用户名


其他命令

Whoami #显示当前登录用户名

id 用户名 #显示指定用户信息,包括用户编号,用户名,主要组编号及名称,附属组表;

groups 用户名 #显示用户所在的所有组

chfn 用户名 #设置用户资料,依次输入用户资料

finger 用户名 #显示用户详细资料


参考网址:

https://blog.csdn.net/qq_41638851/article/details/106172502

https://blog.csdn.net/timonium/article/details/115282961

https://www.cnblogs.com/LilacStrawberry/p/9154731.html 

https://www.cnblogs.com/kunlunsun/p/11425838.html 

https://www.jb51.net/article/182987.htm


转载请注明: ITTXX.CN--分享互联网 » Linux中用户和用户组的操作命令详解

最后更新:2021-11-23 13:04:44

赞 (1) or 分享 ()
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽