前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux用户及组管理

Linux用户及组管理

作者头像
用户8826052
修改2021-07-12 11:23:40
2.4K0
修改2021-07-12 11:23:40
举报
文章被收录于专栏:编程乐园

Linux下用户及组管理

系统中的文件都有一个所属用户及所属组

使用id命令可以显示当前用户的信息

使用passwd命令可以修改当前用户密码

每个用户拥有一个UserID,操作系统实际使用的是用户ID,而非用户名

每个用户属于一个主组,属于一个或多个附属组(一个用户最多有31个附属组)

每个组拥有一个GroupID

每个进程以一个用户身份运行,并受该用户可访问的资源限制

每个可登陆用户拥有一个指定的shell环境

linux实现权限隔离机制(多用户)

操作系统识别用户:

用户:UID

组:GID(逻辑容器,包含用户;实现多个用户对于某个文件或者应用程序分配相同的权限)

用户ID为32位,从0开始,但是为了和老式系统兼容,用户ID限制在60000以下

用户分类:

管理用户:ROOT UID:0

普通用户:500-65535

程序(系统)用户:1-499

组分类:

管理员组/普通组

基本组:Linux中,新建用户时,没有指定隶属于的组,系统会为该用户建立一个同名组,作为该用户的基本组

附加组:方便以后为用户分配权限

解析:

/etc/passwd:存储用户基本信息

/etc/shadow:存储用户的加密口令

/etc/group:存放组的基本信息

/etc/passwd 解释:用冒号隔开

第一列:用户登录名

第二列:加密密码(x表示密码占位符,密码保在/etc/shadow中)

第三列:用户ID号

第四列:组ID号

第五列:用户的描述信息

第六列:用户家目录

第七列:用户默认使用的shell(/etc/shells)

/etc/shadow 解释:用冒号隔开

第一列:用户登录名

第二列:加密密码

第三列:最后一次更改密码时间

第四列:密码最小使用时间

第五列:密码最长使用时间

cat /etc/default/useradd 文件解释:

#useradd defaults file //注释行

GROUP=100 //可以创建普通组

HOME=/home //普通用户宿主目录位置(在/home下生成和用户同名的目录,作为用户的宿主目录)

INACTIVE=-1 //是否启用用户过期停止使用权,-1代表不启用

EXPIRE=20170501 //设定过期时间,格式为20170501

SHELL=/bin/bash //设定用户的默认使用shell

SKEL=/etc/skel //新用户宿主目录模板目录

CREATE_MAIL_SPOOL=yes //是否为用户启用邮件通知功能

创建新用户时,可以设置新用户可登陆系统的时间范围(2017-5-1)

/etc/skel:目录(用户宿主目录模板目录)

.bash_logout:用户注销时执行的命令

.bash_profile:用户登录系统时执行的命令(用户变量)

.bashrc:用户登录一个新shell时执行的命令

/etc/profile:系统环境变量

/etc/login_defs文件解释:只对新建用户生效

MAIL_DIR /var/spool/mail //用户系统邮件存放目录

PASS_MAX_DAYS 99999 //密码最长使用期限

PASS_MIN_DAYS 0 //最短使用期限,0代表不受限制

PASS_MIN_LEN 5 //密码最小长度

PASS_WARN_AGE 7 //密码过期前警告时间

UID_MIN 500 //最小UID号

UID_MAX 60000 //最大UID号

GID_MIN 500 //最小GID号

GID_MAX 60000 //最大GID号

CREATE_HOME yes //是否创建宿主目录

UMASK 077 //关于权限反掩码

USERGROUPS_ENAB yes //删除用户时是否删除组

ENCRYPT_METHOD SHA512 //用户密码的加密方式

useradd命令

useradd命令用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中

在Slackware中,adduser指令是个script程序,利用交谈的方式取得输入的用户帐号资料,然后再交由真正建立帐号的useradd命令建立新用户,如此可方便管理员建立用户帐号。在Red Hat Linux中,adduser命令则是useradd命令的符号连接,两者实际上是同一个指令。

需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号。

语法:useradd [选项] [用户名]

-c<备注>:加上备注文字,备注文字会保存在passwd的备注栏位中

-d<登入目录>:指定用户登入时的启始目录

-D:变更预设值

-e<有效期限>:指定帐号的有效期限

-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号

-g<群组>:指定用户所属的群组

-G<群组>:指定用户所属的附加群组

-m:自动建立用户的登入目录

-M:不要自动建立用户的登入目录

-n:取消建立以用户名称为名的群组

-r:建立系统帐号

-s:指定用户登入后所使用的shell

-u:指定用户uid

示例:

#创建admin用户,默认家目录为/home/admin

[root@localhost ~]# useradd admin

#指定admin用户的登录使用的shell

[root@localhost ~]# useradd -s /sbin/nologin admin

#建立admin用户并设置uid为544

[root@localhost ~]# useradd admin -u 544

#创建yangxz用户并加入到www组钟,加到附属组admin,admin1中

[root@localhost ~]# useradd -g www yangxz -G admin,admin1

userdel命令

userdel命令用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。

语法:

userdel (选项) (用户)

选项:

-f:强制删除用户,即使用户当前已登录;

-r:删除用户的同时,删除与用户相关的所有文件。

示例:

[root@localhost ~]# userdel linuxde //删除用户linuxde,但不删除其家目录及文件

[root@localhost ~]# userdel -r linuxde //删除用户linuxde,其家目录及文件一并删除

usermod命令

usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。当usermod命令用来改变user id,必须确认这名user没在电脑上执行任何程序。你需手动更改使用者的crontab档。也需手动更改使用者的at工作档。采用NIS server须在server上更动相关的NIS设定。

语法:

usermod [选项] [用户名]

选项 :

-c<备注>:修改用户帐号的备注文字;

-d<登入目录>:修改用户登入时的目录;

-e<有效期限>:修改帐号的有效期限;

-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;

-g<群组>:修改用户所属的群组;

-G<群组>;修改用户所属的附加群组;

-l<帐号名称>:修改用户帐号名称;

-L:锁定用户密码,使密码无效;

-s:修改用户登入后所使用的shell;

-u:修改用户UID;

-U:解除密码锁定。

示例:

[root@localhost ~]# usermod -G staff newuser2 //将newuser2添加到组staff中

[root@localhost ~]# usermod -l admin admin1 //修改admin用户名为admin1

[root@localhost ~]# usermod -L admin //锁定admin账号

[root@localhost ~]# usermod -U admin //解除admin锁定

groupdd命令

groupadd命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。

语法 :

groupadd [选项] [组名]

选项:

-g:指定新建工作组的id;

-r:创建系统工作组,系统工作组的组ID小于500;

-K:覆盖配置文件"/ect/login.defs";

-o:允许添加组ID号不唯一的工作组。

示例:

[root@localhost ~]# groupadd -g 344 linuxde //建立linuxde组并设置uid为344

[root@localhost ~]# groupadd admin //创建admin工作组

groupdel命令

groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

语法:

groupdel [组名]

示例:

[root@localhost ~]# groupdel admin //删除admin组

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档