一、Linux多用户、多任务
使用Linux时,需要以一个用户的身份进入,一个进程也需要以一个用户的身份运行,系统使用用户的概念来限制使用者或进程可以使用哪些资源。Linux 是一个多用户、多任务的操作系统。
二、用户和用户组
用户使用Linux时,需要以一个用户的身份进入,一个进程也需要以一个用户的身份运行,系统使用用户的概念来限制使用者或进程可以使用哪些资源。用户组用来方便组织管理用户。实现用户账号的管理,要完成的工作主要有如下几个方面:用户账号的添加、删除与修改;用户口令的管理;用户组的管理。
用户
通过前面对Linux 多用户的理解,我们明白Linux 是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户(user)。比如我们的同事想用我的计算机,但我不想让他用我的用户名登录,因为我的用户名下有不想让别人看到的资料和信息(也就是隐私内容)这时我就可以给他建一个新的用户名,让他用我所开的用户名去折腾,这从计算机安全角度来说是符合操作规则的。
当然用户(user)的概念理解还不仅仅于此,在Linux系统中还有一些用户是用来完成特定任务的,比如nobody和mysql 等,我们访问LinuxSir.Org 的网页程序,就是nobody用户。我们匿名访问mysql时,会用到用户mysql或nobody 。如果您想了解Linux系统的一些帐号,请查看 /etc/passwd 。
[root@localhost ~]# cat /etc/passwd
每个用户都有一个唯一的用户名和口令,同时系统会为每个用户分配一个用户ID(uid)来标识用户。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
根据用户ID的不同,在Linux系统中,用户可分为3种类型。
1.root用户:
又称为超级用户,id为0,拥有最高权限。
2.系统用户:
有称为虚拟用户、伪用户或假用户,不具备登录Linux系统的能力,但却是系统运行不可缺少的用户,一般id为1-499。Centos7为1-999。
3.普通用户:
id在500以上,Centos7为1000以上。可以登录Linux系统,但是使用的权限有限,由管理员创建。
在终端输入id可以查看用户ID的相关信息。如当前用户是root,uid是用户ID,gid是用户所在组的标识符。
三、用户管理
Linux的用户管理常用命令有(一下命令只能在root用户下使用,whoami除外)
命令 | 作用 |
---|---|
whoami | 显示当前自己的用户名 |
useradd | 添加用户 |
passwd | 修改用户密码 |
usermod | 修改用户信息 |
userdel | 删除用户 |
useradd 添加用户
选项 | 说明 |
---|---|
-c | 添加注释 |
-d | 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 |
-g | 指定用户组 |
-G | 指定附加组 |
-s | 指定用户登录shell |
-u | 指定用户的uid,如果同时有-o选项,则可以重复使用其他用户的标识号。 |
userdel 删除用户
语法 userdel [选项] 用户名
常用的选项是-r,它的作用是把用户的主目录一起删除。
usermod 修改用户属性
修改用户就是更改用户的属性,如用户ID、主目录、用户所在组、登录Shell等。
语法: usermod [选项] 用户名
选项 | 说明 |
---|---|
-c | 指定一段注释性描述。 |
-d | 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 |
-g | 指定用户所属的用户组。 |
-G | 指定用户所属的附加组。 |
-s | 指定用户的登录Shell。 |
-u | 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。 |
-l | 修改用户登录名称 |
修改用户登录密码
在root权限下,修改用户密码的命令是 passwd。
语法为:passwd [选项][用户名]
比如修改名为aa用户的密码:
[root@bogon Desktop]# passwd aaa
新密码:
确认密码:
成功。
切换用户
su命令用于切换用户,需要键入该用户的密码
语法:su[参数] 用户
如,切换用户aa
[root@bogon Desktop]#su aa
要注意,在root用户下的切换账户不需要密码,但是在其他用户下切换需要密码。
四、用户组管理
1.查看用户组
查看/etc/group文件,可以查看到用户组信息。显示结果从左至右依次表示用户组,用户组密码,用户组id,用户组的所有用户。
[root@localhost 桌面]# cat /etc/group
root:x:0:myuser1
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
master:x:500:
zhangsan:x:502:
user:x:503:
2.新增用户组
语法:groupadd [选项] 用户组
选项说明:
选项 | 说明 |
---|---|
-g | GID 指定新用户组的组标识号(GID)。 |
-o | 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。 |
例子:创建一个名为qq的用户组
[root@bogon Desktop]# groupadd qq
[root@bogon Desktop]# grep qq /etc/group
qq:x:1005:
3.修改用户组
语法:groupmod [选项] 用户组
选项说明:
选项 | 说明 |
---|---|
-g | GID 指定新用户组的组标识号(GID)。 |
-o | 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。 |
-n | 将用户组的名字改为新名字。 |
例子:将qq改为ww
[root@bogon Desktop]# groupmod –n qq ww
4.删除用户组
语法 groupdel 用户组
例子:删除ww用户组
[root@bogon Desktop]# groupdel ww w
注意:当一个用户在用户组下的时候是不能删除用户组的,必须将用户删掉或更改用户组,才能删除。
五、文件权限
权限一般分为读®、写(w)、执行(x)。系统中每个文件都拥有特定的权限、所属用户及所属组。通过这样的机制来限制哪些用户、哪些组可以对特定文件进行什么样的操作。
有3种类型的用户可以访问文件或目录:文件所有者(u)、同组用户(g)、其他用户(o)。
权限标识符 | 对文件的影响 | 对目录的影响 |
---|---|---|
-r | 可读取文件内容 | 可列出目录内容 |
-w | 可修改文件内容 | 可在目录中创建、删除文件 |
-x | 课作为命令执行 | 可访问目录内容 |
1.文件权限查看
语法:ls -l 或者ll
[root@bogon Desktop]# ls -l /etc
total 1820
drwxr-xr-x. 3 root root 4096 Aug 23 03:02 abrt
drwxr-xr-x. 4 root root 4096 Aug 23 03:05 acpi
-rw-r--r--. 1 root root 45 Sep 20 15:02 adjtime
-rw-r--r--. 1 root root 1512 Jan 12 2010 aliases
d rwx r-x r-x
第一个字段表示文件的权限信息, 第一个字段的字一个字母代表文件的类型,-代表是普通文件,d代表是目录;权限一共分成3组,3个一组,分别是所有者的权限,所属组的权限,其他人的权限,此时abrt文件的第一个字母是d,所以是类型是目录。目录的权限具体是,所有者具有读写执行的权限,同组的人具有读,执行的权限,其他人具有读,执行的权限。
2.改变文件的拥有者
通过chown命令将文件的所有者修改为指定的用户,普通的用户不能将自己的文件改变成其他的拥有者,超级用户才拥有此权限。
语法 chown [选项] 用户组 文件名
例子:使用用户lzp在/usr/tmp目录下创建目录dir1,在dir1目录下创建空文件a,b
[root@localhost Desktop]# su lzp
[lzp@bogon Desktop]$ cd /usr/tmp
[lzp@bogon tmp]$ mkdir dir1
[lzp@bogon tmp]# ls -al
total 12
drwxrwxrwt. 3 root root 4096 Sep 26 09:12 .
drwxr-xr-x. 21 root root 4096 Aug 23 03:05 ..
drwxr-xr-x. 2 root root 4096 Sep 26 09:12 dir1
[lzp@bogon tmp]$ cd dir1
[lzp@bogon dir1]$ touch a b // 创建空文件
[lzpo@bogon dir1]$ ls
a b
[lzp@bogon tmp]$ ls -al
total 8
drwxrwxr-x. 2 lzp lzp 4096 Sep 21 17:00 .
drwxrwxrwt. 3 root root 4096 Sep 21 17:00 ..
-rw-rw-r--. 1 lzp lzp 0 Sep 21 17:00 a
-rw-rw-r--. 1 lzp lzp 0 Sep 21 17:00 b
切换到root用户,添加用户myUser1,修改dir1目录所属用户为myUser1
[lzp@bogon dir1]$ su root //切换到root用户
Password: //输入密码时不回显
[root@bogon dir1]# useradd myUser1
[root@bogon dir1]# cd /usr/tmp
[root@bogon tmp]# chown myUser1 dir1 //将dir1目录的所有者设置为myUser1
[root@bogon tmp]# ls -al
total 12
drwxrwxrwt. 3 root root 4096 Sep 21 17:00 .
drwxr-xr-x. 21 root root 4096 Aug 23 03:05 ..
drwxrwxr-x. 2 myUser1 lzp 4096 Sep 21 17:00 dir1
3.改变文件所在组
通过chgrp命令变更目录和文件的所在组,只有root用户拥有此权限。
语法:chgrp [选项] 组名或组ID 文件
例如:chgrp lzp a
4.文件权限修改
chmod命令用来变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。
每一个权限都可以用某一个数字代表。读权限r代表数字为4,写权限w代表数字为2,执行权限代表数字为1。
-rwxrw-r— 表示拥有者的权限是读,写,执行;同组的权限有读,写;其他人的用户是读的权限,用数字表示起来很简单 就是764
三个一组,rwx权限分别对应421相加得7,rw-对应42相加为6,r–对应4。
权限属性对目录和文件的影响
权限属性对目录和文件的影响见下表。
权限标识符 | 对文件的影响 | 对目录的影响 |
---|---|---|
-r | 可读取文件内容 | 可列出目录内容 |
-w | 可修改文件内容 | 可在目录中创建、删除文件 |
-x | 课作为命令执行 | 可访问目录内容 |
1. 数字法修改
语法: chmod [mode=421] [文件或目录]
示例:把ceshi文件的权限改为拥有者具有读写执行的权限,同组成员具有读写执行的权限,其他人具有读写执行的权限。
[root@bogon Desktop]# cd /usr/tmp
[root@bogon tmp]# mkdir dir1
[root@bogon tmp]# ls -al
total 12
drwxrwxrwt. 3 root root 4096 Sep 26 09:12 .
drwxr-xr-x. 21 root root 4096 Aug 23 03:05 ..
drwxr-xr-x. 2 root root 4096 Sep 26 09:12 dir1
[root@bogon tmp]# chmod 766 dir1
You have new mail in /var/spool/mail/root
[root@bogon tmp]# ls -al
total 12
drwxrwxrwt. 3 root root 4096 Sep 26 09:12 .
drwxr-xr-x. 21 root root 4096 Aug 23 03:05 ..
drwxrw-rw-. 2 root root 4096 Sep 26 09:12 dir1
2.表达式法
语法:
chmod [who][operator][mode] , [ [who][operator][mode]…] [文件或目录]
who指的是什么用户,取值为u、g、o。若没有此参数,则表示对所有用户进行操作。operator表示增加或取消某个权限,取值为“+”或“-”。mode指的是读、写、执行权限,取值为r、w、x的任意组合。
选项 | 说明 |
---|---|
u | 文件或目录的所有者 |
g | 同组用户 |
o | 其他用户 |
a | 所有用户、默认值 |