Linux用户及组管理

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组

给TA打赏
共{{data.count}}人
人已打赏
运维

Linux 快速入门篇

2023-11-21 16:25:20

运维

Tomcat 8.x基于Redis Session会话保持

2023-11-21 16:26:46

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索