用户/群组和权限

用户及passwd文件
/etc/passwd文件的功能
/etc/passwd文件每个字段的具体含义
shadow文件
/etc/shadow文件的功能
/etc/shadow文件每个字段的具体含义
群组及group文件
/etc/group文件的功能
/etc/group文件的功能
怎样在Linux系统中添加一个新的用户账户
useradd命令的功能
useradd命令的常用选项
useradd命令的用法举例
使用usermod命令修改用户账户
usermod命令的功能
usermod命令修改用户账户信息时的常用选项
usermod命令的用法举例
使用usermod命令锁住用户及将用户解锁
usermod –L命令
usermod –U命令
使用userdel命令删除用户账号
userdel命令的功能
userdel的常用选项
userdel的用法举例
群组的管理
groupadd命令的功能
groupadd命令的常用选项
groupadd命令的用法举例
groupmod命令的功能
groupmod命令的常用选项
groupmod命令的用法举例
groupdel命令的功能
groupdel命令的用法举例
课后作业

【本节内容】

详见:http://cn.linux.vbird.org/linux_basic/0410accountmanager.php
1. 用户及passwd文件
1) 掌握/etc/passwd文件的功能:存储所有用户的相关信息,该文件也被称为用户信息数据库(Database)。
2) /etc/passwd文件每个字段的具体含义:
a) 第1个字段(列)记录的是这个用户的名字(在创建用户时root用户起的)。
b) 第2个字段(列)如果是x,表示该用户登录Linux系统时必须使用密码;如果为空,则该用户在登录时无须提供密码。
c) 第3个字段(列)记录的是这个用户的uid。
d) 第4个字段(列)记录的是这个用户所属群组的gid。
e) 第5个字段(列)记录的是有关这个用户的注释信息(如全名或通信地址)。
f) 第6个字段(列)记录的是这个用户的家目录的路径。
g) 第7个字段(列)记录的是这个用户登录后,第一个要执行的进程。
2. shadow文件(详见linux系统管理P133)
1) /etc/shadow文件的功能:存储所有用户的密码,每一个用户占用一行记录,该文件实际上就是存放用户密码的数据库(Database)。
2) /etc/shadow文件每个字段的具体含义:
a) 第1个字段(列)是用户名。
b) 第2个字段(列)是密码,这个密码是经过MD5加密算法加密过的密码。
3. 群组及group文件(详见linux系统管理P135)
1) /etc/group文件的功能:存放了Linux系统中所有群组的信息,它实际上就是一个存放群组信息的数据库(Database)。
2) /etc/group文件每个字段的具体含义:
a) 第1个字段是这个群组的名字。
b) 第2个字段中的x表示这个群组在登录Linux系统时必须使用密码。
c) 第3个字段记录的是这个群组的gid。
d) 第4个字段记录的是这个群组里还有哪些群组成员。
4. 怎样在Linux系统中添加一个新的用户账户(详见linux系统管理P449)
1) 掌握useradd命令的功能:新增一个用户。
2) 了解useradd命令的常用选项:
a) –u:指定用户的UID
b) –g:指定用户所属的群组
c) –d:指定用户的家目录
d) –c:指定用户的备注信息
e) –s:指定用户所用的shell
3) 灵活应用useradd命令的举例:
a) 例如:在系统中新增一个fox(狐狸)用户的命令:useradd fox
b) 例如:在系统中新增一个用户user01,属组为police以及uid为600的命令:
useradd –u 600 –g police user01
5. 使用usermod命令修改用户账户(详见linux系统管理P458)
1) 掌握usermod命令的功能:修改用户的账户信息。
2) 了解usermod命令的常用选项:
a) –u:修改用户的UID
b) –g:修改用户的GID
c) –G:将一个用户加入到指定的群组中
d) –d:修改用户的家目录
e) –c:修改用户的备注信息
f) –s:修改用户所用的shell
3) 灵活应用usermod命令的举例:
a) 修改babydog4用户的家目录为/home/babies的命令:
usermod –d /home/babies babydog4
b) 将babydog4这个用户添加到babydog6这个群组中的命令:
usermod –G babydog6 babydog4
c) 将babydog4这个用户的的gid变更为dog群组的命令:
usermod –g dog babydog4
6. 使用usermod命令锁住用户及将用户解锁(详见linux系统管理P461)
1) 了解usermod –L命户令的功能:将用户的账号锁住
2) 了解usermod –L命户令的用法举例:
例如:将babydog6用户的账号锁住的命令:usermod –L babydog6
3) 了解usermod –U命户令的功能:将用户的账号解锁
4) 了解usermod –U命户令的用法举例:
例如:将babydog6用户的账号解锁的命令:usermod –U babydog6

5)usermod -l给用户更改登录名
7. 使用userdel命令删除用户账号(详见linux系统管理P462)
1) 掌握userdel命令的功能:删除用户。
2) 了解userdel命令的常用选项:
a) –r:在删除用户的同时删除这个用户的家目录及其邮箱。
3) 灵活应用userdel命令删除用户的举例:
a) 例如:删除babydog5用户不删除其家目录的命令:
userdel babydog5
b) 例如:删除babydog5用户,同时删除其家目录的命令:
userdel –r babydog5
8. 群组的管理
1) 掌握groupadd命令的功能:创建一个新的群组账号。
2) 了解groupadd命令的常用选项:
c) –g:指定群组的GID
3) 灵活应用groupadd命令的举例:
例如:在系统中新增加一个名为boydogs的群组的命令:
groupadd boydogs
4) 掌握groupmod命令的功能:修改一个群组账号的信息。
5) 了解groupmod命令的常用选项:
a) –g:修改群组的GID
b) –n:修改群组的名称
6) 灵活应用groupmod命令的举例:
a) 例如:修改police群组的gid为521的命令:
groupmod –g 521 police
b) 例如:将群组boydogs改名为daddogs的命令:
groupmod –n daddogs boydogs
7) 掌握groupdel命令的功能:删除一个群组账号。
8) 灵活应用groupdel命令的举例:
例如:删除daddogs群组的命令:groupdel daddogs

基本的修改密码命令
1、passwd 简单说明;

我们已经学会如何添加用户了,所以我们还要学习设置或修改用户的密码;passwd命令的用法也很多,我们只选如下的几个参数加以说明;想了解更多,请参考man passwd或passwd --help ;

passwd [OPTION...]


passwd 作为普通用户和超级权限用户都可以运行,但作为普通用户只能更改自己的用户密码,但前提是没有被root用户锁定;如果root用户运行passwd ,可以设置或修改任何用户的密码;

passwd 命令后面不接任何参数或用户名,则表示修改当前用户的密码;请看下面的例子;
 

复制代码
代码如下:
[root@localhost ~]# passwd

  注:没有加任何用户,我是用root用户来执行的passwd 表示修改root用户的密码;下面也有提示;
Changing password for user root.
New UNIX password: 注:请输入新密码;
Retype new UNIX password: 注:验证新密码;
passwd: all authentication tokens updated successfully. 注:修改root密码成功;

如果是普通用户执行passwd 只能修改自己的密码;

如果新建用户后,要为新用户创建密码,则用 passwd 用户名 ,注意要以root用户的权限来创建;

复制代码
代码如下:

[root@localhost ~]# passwd beinan

注:更改或创建beinan用户的密码;
Changing password for user beinan.
New UNIX password: 注:请输入新密码;
Retype new UNIX password: 注:再输入一次;
passwd: all authentication tokens updated successfully. 注:成功;

普通用户如果想更改自己的密码,直接运行passwd即可;比如当前操作的用户是beinan;

复制代码
代码如下:

[beinan@localhost ~]$ passwd


Changing password for user beinan. 注:更改beinan用户的密码;
(current) UNIX password: 注:请输入当前密码;
New UNIX password: 注:请输入新密码;
Retype new UNIX password: 注:确认新密码;
passwd: all authentication tokens updated successfully. 注:更改成功;


2、passwd 几个比较重要的参数;

复制代码
代码如下:

[root@localhost beinan]# passwd --help


Usage: passwd [OPTION...] <accountName>
-k, --keep-tokens       keep non-expired authentication tokens
注:保留即将过期的用户在期满后能仍能使用;
-d, --delete            delete the password for the named account (root only)
注:删除用户密码,仅能以root权限操作;
-l, --lock              lock the named account (root only)
注:锁住用户无权更改其密码,仅能通过root权限操作;
-u, --unlock            unlock the named account (root only)
注:解除锁定;
-f, --force             force operation
注:强制操作;仅root权限才能操作;
-x, --maximum=DAYS      maximum password lifetime (root only) 注:两次密码修正的最大天数,后面接数字;仅能root权限操作;
-n, --minimum=DAYS      minimum password lifetime (root only) 注:两次密码修改的最小天数,后面接数字,仅能root权限操作;
-w, --warning=DAYS      number of days warning users receives before 注:在距多少天提醒用户修改密码;仅能root权限操作;
password expiration (root only)
-i, --inactive=DAYS     number of days after password expiration when an 注:在密码过期后多少天,用户被禁掉,仅能以root操作;
account becomes disabled (root only)
-S, --status            report password status on the named account (root   注:查询用户的密码状态,仅能root用户操作;
only)
--stdin                 read new tokens from stdin (root only)

用不需要重复确认的方式修改用户密码:

echo 123 | passwd --stdin nana;

比如我们让某个用户不能修改密码,可以用-l 参数来锁定:

[root@localhost ~]# passwd -l beinan

注:锁定用户beinan不能更改密码;
Locking password for user beinan.
passwd: Success           注:锁定成功;
[beinan@localhost ~]# su beinan 注:通过su切换到beinan用户;
[beinan@localhost ~]$ passwd 注:beinan来更改密码;
Changing password for user beinan.
Changing password for beinan
(current) UNIX password: 注:输入beinan的当前密码;
passwd: Authentication token manipulation error 注:失败,不能更改密码;


再来一例:

[root@localhost ~]# passwd -d beinan

注:清除beinan用户密码;
Removing password for user beinan.
passwd: Success                        注:清除成功;

[root@localhost ~]# passwd -S beinan

注:查询beinan用户密码状态;
Empty password.                     注:空密码,也就是没有密码;

注意: 当我们清除一个用户的密码时,登录时就无需密码;这一点要加以注意;


3、chage 修改用户密码有效期限的命令;

chage 用语法格式:

chage [-l] [-m 最小天数] [-M 最大天数] [-W 警告] [-I 失效日] [-E 过期日] [-d 最后日] 用户

前面已经说的好多了,这个只是一笔带过吧,知道有这个命令就行,自己实践实践再说,大体和psswd有些参数的用法差不多;

密 码时效命令-----chage

格式为:chage [<选项>] <用户名>
下面列出了chage命令的选项说明:
-m days: 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M days: 指定口令有效的最多天数。当该选项指定的天数加上-d选项指定的天数小于当前的日期时,用户在使用该帐号前就必须改变口令。
-d days: 指定从1970年1月1日起,口令被改变的天数。
-I days: 指定口令过期后,帐号被锁前不活跃的天数。如果值为0,帐号在口令过期后就不会被锁。
-E date: 指定帐号被锁的日期。日期格式YYYY-MM-DD。若不用日期,也可以使用自1970年1月1日后经过的天数。
-W days: 指定口令过期前要警告用户的天数。
-l: 列出指定用户当前的口令时效信息,以确定帐号何时过期。
例如下面的命令要求用户user1两天内不能更改口令,并且口令最长的存活期为30天,并且口令过期前5天通知用户
chage -m 2 -M 30 -W 5 user1
可以使用如下命令查看用户user1当前的口令时效信息:chage -l user1
提示:1)可以使用chage <用户名>进入交互模式修改用户的口令时效。
2)修改口令实质上就是修改影子口令文件/etc/shadow中与口令时效相关的字段值。

强制用户在下次登录时修改密码

每个Linux用户都关联这不同的密码相关配置和信息。比如,记录着上次密码更改的日期、最小/最大的修改密码的天数、密码何时过期等等。

一个叫chage的命令行工具可以访问并调整密码过期相关配置。你可以使用这个工具来强制用户在下次登录修改密码、

要查看特定用户的过期信息(比如:alice),运行下面的命令。注意的是除了你自己之外查看其他任何用户的密码信息都需要root权限。


$ sudo chage -l alice


2015112121153591.jpg (800×176)

强制用户修改密码
如果你想要强制用户去修改他/她的密码,使用下面的命令。


$ sudo chage -d0 <user-name>


原本“-d ”参数是用来设置密码的“年龄”(也就是上次修改密码起到1970/1/1起的天数)。因此“-d0”的意思是上次密码修改的时间是1970/1/1,这就让当前的密码过期了,也就强制让他在下次登录的时候修改密码了。

另外一个过期当前密码的方式是用passwd命令。

 

$ sudo passwd -e <user-name>


上面的命令和“chage -d0”作用一样,让当前用户的密码立即过期。

现在检查用户的信息,你会发现:
2015112121214861.jpg (800×168)

当你再次登录时候,你会被要求修改密码。你会在修改前被要求再验证一次当前密码。
2015112121230806.jpg (800×167)

怎样查看文件的权限
ls命令详解
root用户及文件的安全控制
什么是root用户
用户分类
文件操作权限
文件操作权限的字符表示
chown
chgrp
使用符号表示法设定文件或目录上的权限
chmod命令的功能
chmod命令的-R选项
什么是符号表示法
权限状态的3个部分
符号表示法举例
使用数字表示法设定文件或目录上的权限
什么是数字表示法
数字代表的资源权限状态
数字表示法举例
课后作业
【本节内容】
1. 怎样查看文件的权限(详见linux系统管理P138)
1) 掌握使用ls –l命令查看文件上所设定的权限。
2) 掌握ls –l命令的显示结果中的第一列分成4组,其中;
a) 第1个字符为第1组,代表这是一个文件(-)或是一个目录(d),也可以是其他资源。
b) 第2、3、4个字符为第2组,定义了文件或目录的所有者(owner)所具有限的权,使用u代表所有者(owner)对文件的所有权限。
c) 第5、6、7个字符为第3组,定义了文件或目录的所有者所在的群组中其他(用户)所具有的权限,使用g代表这一组(group)权限。
d) 第8、9、10个字符为第4组,定义了既不是owner也不和owner在同一群组的其他用户对文件或目录所具有的权限。使用o代表这一组(other)权限。
3) 掌握ls –l命令的显示结果中的第三列、第四列为文件的属主和属组。
2. root用户及文件的安全控制(详见linux系统管理P136)
1) 掌握root用户的定义:root用户也称为超级用户,它可以完全不受限制地访问任何用户的账户和所有文件及目录。
2) 了解Linux系统中用户分类:
Linux系统是将系统中的所有用户分成了3类:
a) 第1类:所有者
b) 第2类:同组用户(修正:所属组,因为你创建一个用户的过程会以为这个用户名为名字创建一个同名的组)
c) 第3类:非同组的其他用户
3) 掌握文件操作权限包括读(read)、写(write)和执行(execute)
4) 掌握Linux操作系统在显示权限时,使用如下4个字符来表示文件操作权限:
a) r:表示read权限,也就是可以阅读文件或者ls命令列出目录内容的权限。
b) w:表示write权限,也就是可以编辑文件或者在一个目录中创建和删除文件的权限。
c) x:表示execute权限,也就是可以执行程序或者使用cd命令切换到这个目录以及使用带有-l选项的ls命令列出这个目录中详细内容的权限等。
d) -:表示没有相应的权限(与所在位置的r、w或x相对应)。
3. 掌握使用chown修改文件的属主
chown 属主:属组 文件
chown :属组 文件
chown 属主 文件
a) 例如,修改文件file1的属主为root的命令为:chown root file1
4. 掌握使用chgrp修改文件的属组
chgrp 属组 文件
a) 例如,修改文件file1的属组为wg的命令为:chgrp wg file1
5. 使用符号法设定文件或目录上的权限(详见linux系统管理P132)
1) 掌握chmod命令的功能:设定或更改文件或目录上的权限。
2) 掌握-R选项:不但设置(或更改)该目录权限,而且还要递归地设置(或)更改该目录中所有文件或子目录的权限。
3) 掌握是符号表示法的定义:
符号表示法是使用几个特定的符号来设定权限的状态。
4) 掌握权限状态可以分为3个部分:
a) 第1个部分,表示要设定或更改谁的权限状态。其中的具体表示如下:
u:表示所有者(owner)的权限。
g:表示群组(group)的权限。
o:表示既不是owner也不与owner在同一个group的其他用户(other)的权限。
a:表示以上3组,也就是所有用户(all)的权限。
b) 第2部分,是运算符(operator),也有人称为操作符,其中的具体表示如下:
+:表示加入权限
-:表示去掉权限
=:表示设定权限
c) 第3部分,表示权限(permission),其中的具体表示如下:
r:表示read(读)权限。
w:表示write(写)权限。
X:表示execut(执行)权限。
5) 灵活应用符号表示法设定或更改文件或目录上的权限:
a) 例如:在dog_wolf文件上添加所有者和同组用户的可执行权限的命令:
chmod ug+x dog_wolf
b) 例如:在babydog目录上为其他用户添加写权限的命令:
chmod o+w babydog
6. 使用数字表示法设定文件或目录上的权限(详见linux系统管理P143)
1) 掌握数字表示法的定义:
数字表示法是指使用一组三位数的数字来表示文件或目录上的权限状态。其中:
第1个数字代表所有者(owner)的权限(u)。
第2个数字代表群组(group)的权限(g)。
第3个数字代表其他用户(other)的权限(o)。
2) 数字代表的资源权限状态:
4:表示具有读(read)权限。
2:表示具有写(write)权限。
1:表示具有执行(execute)权限。
0:表示没有相应的权限。
3) 灵活应用数字法表示法设定或更改文件或目录上的权限:
a) 例如:使用数字表示法对owner开放/home/dog/babydog目录和其中所有文件的一切权限,但是对同组用户开放读和执行权限,而对其他用户只开放读权限的命令:
chmod -R 754 /home/dog/babydog

对文件的执行权限建立在对文件的读权限的基础上,对文件夹的写权限建立在对文件夹的执行权限上,对文件有写权限还需要对文件所在文件夹有执行权限。


7. 课后作业(用时60分钟)
1) 在用户的主目录下创建目录test,进入test创建空文件file1
2) 以长格式形式显示文件信息,注意文件的权限和所属用户和组
3) 为文件file1设置权限,使其他用户可以对此文件进行写操作。
4) 查看设置结果,
5) 取消同组用户对文件file1的读取权限,并查看设置结果。
6) 用数字表示法为文件file设置权限,所有者可读、可写、可执行,所属组用户和其他用户只具有读和执行的权限。设置完成后查看设置结果。
7) 用数字形式更改文件file1的权限,使所有者只能读取此文件。其他任何用户都没有权限。查看设置结果。
8) 回到上层目录,查看test的权限
9) 为其他用户添加对此目录的写权限

原文地址:https://www.cnblogs.com/Icarus1900/p/7638250.html