Linux系统是一个 多用户 的操作系统,任何一个用户,要使用系统,都必须使用Linux账号登陆系统。
Linux账号是向系统管理员申请创建的。
系统管理员可以为不同用户的账号分配不同的权限,从而控制他们对系统资源的访问。
Linux系统中,每个用户账号 都对应一个 用户 ID。
用户ID 就是一个数字,因为计算机处理数字更加方便。
用户的 ID 与账号的信息就存储在文件 /etc/passwd 当中。
另外 每个用户都属于一个 用户组 ,每个用户组对应一个 GroupID 。
系统管理员可以对一个用户组中的所有用户进行统一管理,比如分配权限等。
用户组 ID 的信息就存储在文件 /etc/group 当中
root用户Linux 系统有个特殊的用户 root 。该使用该用户账号的 就是 系统管理员。root用户是系统安装好就有的,具有系统中最高的权限。
添加用户当你们公司新来了一位员工,需要使用你们的Linux主机, 你作为拥有root账号的管理员, 可以为他创建一个用户账号。
Linux系统中创建用户,可以使用命令 useradd
比如:
[root@localhost ~]# useradd byhy这样
就添加了一个用户byhy
使用命令 cat /etc/passwd 查看文件内容,你会发现在/etc/passwd文件末尾中新增了一行数据,如下所示
byhy:x:1000:1000::/home/byhy:/bin/bash/etc/passwd文件每行对应一个用户的信息。一行中的字段用”:”隔开。每个字段的含义分别是
用户名
登录密码
用户ID
用户Group ID
描述信息
用户的home目录
该用户缺省shell
该命令,同时也为该用户创建了一个用户组, 组名就叫 byhy 。你会发现在 /etc/group 文件末尾中新增一行数据,如下所示
byhy:x:1000:当然,你可以创建用户的时候,就加入一个指定的组,而不是新建一个组,
比如 useradd -g root byhy ,就在创建byby用户的同时,把它加入到 root 这个用户组里面了。
另外还为该用户创建了一个 home目录(这里就是 /home/byhy), 该目录作为byhy用户登录后使用的主目录,该目录属于byhy用户所有。
useradd可以使用 -d 参数指定该用户使用的 home目录
设置密码添加用户后,还得用户设置密码。使用命令 passwd
# passwd byhy
Changing password for user byhy.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
passwd命令不仅仅可以给新建用户设置密码,也可以给老用户修改密码。
但是,只有root用户才可以给其他用户设置密码,普通用户只能修改自己的密码。
删除用户假如,有一天,这位同事辞职了,你需要删除他的账号,使用命令 userdel
比如
[root@bogon ~]# userdel byhy用户间切换
假如说,你是系统管理员, 正使用root账号操作。
现在你需要以byhy账号进行一些操作, 可以从root用户切换到byhy账号,
切换账号使用命令 su
比如 su - byhy
注意,其中有一个符号 - , 切换命令中使用这个符号,表示要重新创建用户环境,就像使用byhy账号重新登陆一样
也可以符号 -,比如 su byhy ,这样就会使用当前的用户root的环境(保留现有的环境变量),切换到新用户byhy
如果现有用户不是root 用户,切换到其他用户账号,需要输入密码, 如果是root用户则不需要输入密码。
添加用户组增加一个新的用户组使用 groupadd 命令。
比如:
groupadd byhyusers此命令向系统中增加了一个新组byhyusers。
删除用户组如果要删除一个已有的用户组,使用 groupdel 命令
比如
groupdel byhyusers此命令从系统中删除组byhyusers。
改变用户所属组如果要将一个用户从组1改到组2,需要root用户使用 usermod 命令,其格式如下:
例如:
usermod –g g1 byhy此命令将用户byhy转移至g1用户组中
usermod –G g2,g3 byhy此命令将用户byhy同时添加到g2,g3两个用户组中
Linux 文件访问权限Linux文件的访问有三种权限:读(用字母r表示)、写(用字母w表示)、执行(用字母x表示)
某个用户 对于一个 文件 :
有读权限,表示该用户可以读取文件的内容,
有写权限,表示该用户可以修改文件内容,
有执行权限, 表示该用户可以运行该文件(当然该文件应该是可执行文件)
而 这三种权限 对目录,含义又不一样。
某个用户 对于一个 目录 :
有读权限,表示该用户可以查看该目录里面的内容,
有写权限,表示该用户可以在该目录里面 创建 和删除 文件,
有执行权限, 表示该用户可以使用 cd命令,进入该目录
对 某个文件或者目录,Linux系统需要说明 三种类型的用户 ,分别具有怎样的权限
这三种类型分别是:
文件的所有者,英文叫 owner ,也就是 该文件的 创建者
文件所有者在的用户组里面的用户 ,英文叫 grouper,
其他用户 (非owner和非grouper)
Linux系统需要为每个文件和目录,指定这个三种类型的用户,具有什么r、w、x里面的哪些权限
文件存取权限的显示 可以通过”ls -l”命令显示,如:
$ ls -l file1
显示如下:
$ ls -l mysql57-community.rpm
-rwxr-xr--. 1 root root 9224 Sep 12 2016 mysql57-community.rpm
其中:
第2-4字符”rwx”表示此文件所有者root 对此文件的操作权限是为”可读、可写、可执行”,
第5-7字符”r-x” 表示此工作组root内的用户对此文件的操作权限是”可读、不可写、可执行”,
第8-10字符”r–” 表示其他用户对此文件的操作权限是”可读、不可写、不可执行”
修改文件访问权限
文件的所有者或者root用户可以修改文件的访问权限
用chmod命令修改文件的存取权限,chmod命令的格式如下:
chmod [who][op][permission] file...who项表示用户类型,它的内容为以下一项或多项:
u 拥有者(user --- owner)
g 与拥有者同一组的用户(group)
o 其他人(other)
a 所有人(all)
op项表示动作:
+ 表示要加上permission指定的权利
- 表示要取消permission指定的权利
permission项为存取权限,它的内容为以下一项或多项:
r 表示可读
w 表示可写
x 表示可执行
比如:
chmod u+w file1 ,该命令添加了 拥有者对file1文件的写权限
chmod u-x file1 ,该命令去掉了 拥有者对file1文件的执行权限
chmod ug+rwx file1 ,该命令添加了 拥有者和同组用户 对file1文件的 读、写、执行权限
chmod a+rwx file1,该命令添加了 所有人 对file1文件的 读、写、执行权限
改变文件所有者及文件所在组chown将指定文件的拥有者改为指定的用户或组。
该命令的参数中,用户可以是用户名或者用户ID;组可以是组名或者组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。
系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限.
注意:必须是有root权限的用户才能改变文件所有者。
改变文件所有者的命令格式如下:
chown [选项]... [所有者][:[组]] 文件...例如:
chown byhy test1 ,就把文件test1的所有者变更为用户byhy
chown byhy:byhy test1 ,就把文件test1的所有者变更为用户byhy,所属组变为byhy
chown -R byhy dir1 ,就把目录dir1以及下面所有的子目录和文件的所有者变更为用户byhy
也可以用命令chgrp改变文件所有者组,格式如下:
chgrp [选项] [组] [文件]注意:必须是有root权限的用户才能改变文件组别的归属{: .notice–info}
比如:
chgrp byhy test1 , 就把文件test1的用户组变更为组byhy
作业和练习请使用 root 账号登录 Linux,依次执行下面的操作
创建 用户组 byhy
创建2个新用户 byhy1, byhy2 都属于组 byhy
先从 root 用户 切换 到 byhy1 用户,再从 byhy1 用户 切换到 byhy2 用户
将 byhy2 用户 改变所属组为 root用户组
使用root账号,将上次作业中 /root/byhy 目录下所有的目录和文件做如下权限设置:
对 owner 的权限 设置为 rwx
对 group 的权限设置为 rw-
对 other 的权限设置为 r–
切换到 byhy1 账号,拷贝 /root/byhy 目录下 所有内容 到 byhy1 用户的home目录中
将 /home/byhy1/byhy 目录包括其内部所有目录和文件的 owner 改为 byhy2
思考一下,如果我们需要 能够以 byhy1 的账号 修改 /root/byhy/f1 文件的内容,我们应该怎么做?
删除用户 byhy2