您的位置:首页 > 运维架构 > Linux

linux----7----用户群组和权限

2011-12-20 21:48 183 查看
linux----7----用户群组和权限

----------------------------------------------------------------------------------------------------------------------

一:用户(Users)以及Passwd文件

Linux系统中,用户的概念如下:

(1)系统中的每一个用户(Users)都有唯一的用户标识符,即uid,uid 0即为root用户的标识符。

(2)所有用户的和用户标识符号都放在根目录的/etc/passwd文件中

(3)在口令文件中还存放了每个用户的家目录,以及登陆家目录鸡皮第一个执行的程序。

(4)如果没有响应的权限就不能读写或者执行其他用户的文件。

说明:/etc中存放了系统所有的配置文件。/etc/passwd中存放了所有用户的相关信息,每个用户占据一行记录。

[cat@localhost app]$ more /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

amanda:x:33:6:Amanda user:/var/lib/amanda:/bin/bash

canna:x:39:39:Canna Service User:/var/lib/canna:/sbin/nologin

wnn:x:49:49:Wnn System Account:/home/wnn:/sbin/nologin

fax:x:78:78:mgetty fax spool user:/var/spool/fax:/sbin/nologin

netdump:x:34:34:Network Crash Dump user:/var/crash:/bin/bash

nut:x:57:57:Network UPS Tools:/var/lib/ups:/bin/false

ldap:x:55:55:LDAP User:/var/lib/ldap:/bin/false

mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

ident:x:98:98:pident user:/:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

mailman:x:41:41:GNU Mailing List Manager:/var/mailman:/bin/false

postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash

privoxy:x:73:73::/etc/privoxy:/sbin/nologin

pvm:x:24:24::/usr/share/pvm3:/bin/bash

desktop:x:80:80:desktop:/var/lib/menu/kde:/sbin/nologin

radvd:x:75:75:radvd user:/:/sbin/nologin

dog:x:500:500:dog:/home/dog:/bin/bash

cat:x:501:501::/home/cat:/bin/bash

说明:

(1)字段一:记录用户的名字。

(2)字段二:如果有X表示,登陆Linux系统时必须需要使用密码。如果为空表示登陆时无需密码。

(3)字段三:记录这个用户的Uid

(4)字段四:记录这个用户所属群组的gid

(5)字段五:记录这个用户的全名或者注释信息

(6)字段六:记录这个用户的家目录

(7)字段七:记录这个用户的第一个要执行的进程,Linux系统为bash

可以利用图形Text编辑器将/etc/passwd中的信息进行修改,例如修改将X删除,则下次登陆就不用密码了。

二:shadow文件

1:/etc/shadow文件存储了所有用户的密码,每一个用户占一行记录,该文件实际上就是存放用户密码的数据库。并且只有在管理员身份才能进入。

[root@localhost root]# tail -5 /etc/shadow

pvm:!!:15306:0:99999:7:::

desktop:!!:15306:0:99999:7:::

radvd:!!:15306:0:99999:7:::

dog:$1$.byz2CWx$.N5Kc1rqzANcXPN8R7L.W/:15308:0:99999:7:::

cat:$1$rRcpJU92$dNYiXs1ENL9YqOi5CTeCM0:15308:0:99999:7:::

说明:

(1)字段一:用户名

(2)字段二:经过MD5加密算法的密码,如果密码是$1$开头,表明用户设定了密码,如果以!!开头,表明用户没有设定密码。

(3)这里会发现cat密码我们已经删除了这里还是说有密码,其实是空密码。

2:限制无密码用户只能使用more命令

[root@localhost root]# useradd pig

[root@localhost root]# passwd -S pig

Password locked.

[root@localhost root]# passwd -uf pig

Unlocking password for user pig.

passwd: Success.

[root@localhost root]#

以上操作是建立一个pig用户,并通过passwd查看pig密码以及为其解锁。

3:群组(group)、群(group)、gshadow文件

Linux中为了使用户共享文件或者其他资源方便,引入了群组的功能。

(1)Linux中每一个用户属于一个群组(group),而每一个群组(group)都有一个group标示符,即gid.

(2)所有群组和对应的gid都存放在根目录的/etc/group中

(3)Linux系统在创建每一个用户时就为每一个用户创建了了一个同名的群组,并将这个用户加入到该群组中,也就是说至少每个用户都有一个同名的群组,当然也可以加入到其他群组中。加入到其他群组是为了获取适当的权限来访问特定的资源。

(4)如果一个文件属于一个群组,则这个群组的所有用户都能存取这个文件。

(5)Linux群组密码存放在/etc/gshadow文件中,只有在特权用户才能访问。在linux中一般很少用到群组密码。

[pig@localhost pig]$ more /etc/group

root:x:0:root

bin:x:1:root,bin,daemon

daemon:x:2:root,bin,daemon

sys:x:3:root,bin,adm

adm:x:4:root,adm,daemon

tty:x:5:

disk:x:6:root

lp:x:7:daemon,lp

postgres:x:26:

privoxy:x:73:

pvm:x:24:

desktop:x:80:

radvd:x:75:

dog:x:500:

cat:x:501:

pig:x:502:

说明:

(1)第一个字段就是这个群的名字

(2)第二个字段的x表示这个群组在登录这个群组的密码

(3)第三个字段是群组的gid

(4)第四个字段是这个群组中还有哪些成员

[pig@localhost pig]$ ls -l

total 4

-rw------- 1 dog dog 670 Dec 20 12:41 r2.txt

-rw-rw-r-- 1 pig pig 0 Dec 20 15:39 r3.txt

由上可以看出,在pig用户的家目录中,第三列表表示文件的所有者uid,第四列表示这个文本的所属群gid.

[pig@localhost pig]$ tail -5 /etc/passwd

dog:x:500:500:dog:/home/dog:/bin/bash

cat:x:501:501::/home/cat:/bin/bash

pig:x:502:502::/home/pig:/bin/bash

在linux注释一行语句的方法:#。

4:root用户以及文件的安全控制

Linux上所有的资源都被看做文件,包括物理设备和目录,在linux上可以为每一个文件(或目录)设定三种类型的权限,权限详细的规定了谁有权访问这个文件,他们分别是:

①这个文件(或目录)的所有者的权限 -----所有者

②与所有者用户在同一个群组的其他用户的权限 -----同组者

③既不是所有者也不是同一群组的其他用户的权限 -----非同组其他用户

一般的使用以下四个字符表示文件权限:

①r:表示read权限,也就是可以阅读文件或者使用ls命令列出文件目录的权限。

②w:表示write权限,也就是可以编辑文件或者在同一目录中创建和删除文件的权限。

③x:表示execute权限,也就是可以执行程序、或者CD命令进入该目录使用ls浏览文件。

④-:表示没有相应的权限。

一般的用户只能访问属于他自己的文件或目录,也可以访问其他同组用户共享的文件,但是一般不能访问非同组的其他用户的文件;root用户不受限制,能访问所有的文件。

[dog@localhost app100]$ ls -l

total 4

drwxrwxr-x 2 dog dog 4096 Dec 20 17:54 dog1

-rw-rw-r-- 1 dog dog 0 Dec 18 16:25 dog.boy

-rw-rw-r-- 1 dog dog 0 Dec 18 16:26 dog.boy.black

-rw-rw-r-- 1 dog dog 0 Dec 18 16:26 dog.girl.black

-rw-rw-r-- 1 dog dog 0 Dec 18 16:26 dog.girl.white

-rw-rw-r-- 1 dog dog 0 Dec 18 16:25 dog.wolf

可以看出ls -l结果的第一字段列就是文件的权限:

(1)第一个字符为第一组:(-)表示这是文件,(d)表示这是目录

(2)第二三四 为第二组:定义文件或者目录拥有者所具有的权限,使用u代表对文件的所有权限。

(3)第五六七 为第三组:定义文件或者目录拥有者所在群组的权限,使用g代表这一组的权限。

(4)第八九十 为第四组:定义非拥有非群组用户的权限,使用o代表这一组的权限。

以上的结果表示是文件,对于拥有者和同组者可读可写,对于意外用户,只读不可写。

5:使用符号表示法设定文件或者目录上的权限

Linux中使用chmod来设定或更改文件或者目录上的权限。

命令格式:chmod [-R] mode 文件或目录名

说明:

①-R表示不但要设置该目录权限,还要递归设置该目录该目录中所有的文件和子目录,该命令只能在特权root才能改变。

②mode:使用符号表示法设定权限的状态,mode的取值就是从以下的表中取值的组合。

mode

who

operate

permission

u

+

r

g

-

w

o

=

x

a

[dog@localhost app100]$ ls -l

total 4

drwxrwxr-x 2 dog dog 4096 Dec 20 17:54 dog1

-rw-rw-r-- 1 dog dog 0 Dec 18 16:25 dog.boy

-rw-rw-r-- 1 dog dog 0 Dec 18 16:26 dog.boy.black

-rw-rw-r-- 1 dog dog 0 Dec 18 16:26 dog.girl.black

-rw-rw-r-- 1 dog dog 0 Dec 18 16:26 dog.girl.white

-rw-rw-r-- 1 dog dog 0 Dec 18 16:25 dog.wolf

[dog@localhost app100]$ chmod u+x dog.boy

[dog@localhost app100]$ ls -l dog.boy

-rwxrw-r-- 1 dog dog 0 Dec 18 16:25 dog.boy

可以看出执行了chmod u+x后,文件的权限多了用户的可执行部分。

[dog@localhost app100]$ chmod g+x dog.boy

[dog@localhost app100]$ ls -l dog.boy

-rwxrwxr-- 1 dog dog 0 Dec 18 16:25 dog.boy

执行了chmod g+x后,文件所在的用户组多了执行的权限。[dog@localhost tmp]$ chmod -R a-r app100

chmod: `app100': Permission denied

[root@localhost root]# ls /tmp/app100

dog1 dog.boy dog.boy.black dog.girl.black dog.girl.white dog.wolf

[root@localhost root]# ls -l /tmp/app100

total 4

d-wx-wx--x 2 dog dog 4096 Dec 20 17:54 dog1

--wx-wx--- 1 dog dog 0 Dec 18 16:25 dog.boy

--w--w---- 1 dog dog 0 Dec 18 16:26 dog.boy.black

--w--w---- 1 dog dog 0 Dec 18 16:26 dog.girl.black

--w--w---- 1 dog dog 0 Dec 18 16:26 dog.girl.white

--w--w---- 1 dog dog 0 Dec 18 16:25 dog.wolf

可以看出执行了以后目录中所有的文件都没有了可读的属性。

6:使用数字表示法设定文件或者目录上的权限

r

w

x

u

r

w

x

g

r

w

x

o

说明:

(1)将以上的数字相加就可以得到一个范围在0~7之间的一个数字,而这一组0~7的数字就是表示所有者、同组、和其他用户权限状态的数字。

(2)如果想对所有使用者开放所有的权限,就可以使每组的权限设定为7,这样设置数字为777.

(3)如果针对拥有者开放全部权限----7,同组用户开放读和执行权限----5,而其他用户开放读权限----4。即设置为754

(4)读写权限是6。

[root@localhost root]# chmod -R 754 /tmp/app100

[root@localhost root]# ls -l /tmp/app100

total 4

drwxr-xr-- 2 dog dog 4096 Dec 20 17:54 dog1

-rwxr-xr-- 1 dog dog 0 Dec 18 16:25 dog.boy

-rwxr-xr-- 1 dog dog 0 Dec 18 16:26 dog.boy.black

-rwxr-xr-- 1 dog dog 0 Dec 18 16:26 dog.girl.black

-rwxr-xr-- 1 dog dog 0 Dec 18 16:26 dog.girl.white

-rwxr-xr-- 1 dog dog 0 Dec 18 16:25 dog.wolf

可看出执行完754后,三个组设置的权限和上面所讲一置。

[root@localhost root]# chmod -R 777 /tmp/app100

[root@localhost root]# ls -l /tmp/app100

total 4

drwxrwxrwx 2 dog dog 4096 Dec 20 17:54 dog1

-rwxrwxrwx 1 dog dog 0 Dec 18 16:25 dog.boy

-rwxrwxrwx 1 dog dog 0 Dec 18 16:26 dog.boy.black

-rwxrwxrwx 1 dog dog 0 Dec 18 16:26 dog.girl.black

-rwxrwxrwx 1 dog dog 0 Dec 18 16:26 dog.girl.white

-rwxrwxrwx 1 dog dog 0 Dec 18 16:25 dog.wolf

执行完777之后,所有用户所有权限全部打开。

说明:使用exit退出现在登录用户,退回到原先登录的用户。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息