假设有一家人,家里有3个人,分别是王大毛、王二毛、王三毛3人,而这个家庭登记在王大毛名下,三个人 各自有各自的房间,并且他们共享客厅:
1 用户的意义(user)
由于王家三人各自拥有自己的房间,所以王二毛虽然可以进入大毛的房间,但二毛不可乱翻大毛的抽屉,即 “私人空间”当然不能让二毛乱动;
2 用户组的概念(group)
由于共同拥有客厅,所以三兄弟可以在客厅看电视、翻阅报纸、等,只要是在客厅的东西都可以使用,一家人吗
至此,王大毛家就是 用户组 ,三兄弟分别是 用户,三个用户虽然在同一用户组里,我们可以设置权限,目的让某些用户的信息不被用户组的拥有者查询,而保留私人空间,设立用户组共享,可以让大家共同分享。
3 其他人的概念(others)
其他人:在群组之外的,没有权限查看档案
4Linux用户身份与用户组记录的文件
Linux系统当中,默认的情况下所有的系统上的账号与一般身份用户,还有那个
root的相关信息,都是记录在/etc/passwd
这个文件内。
个人的密码则是记录在/etc/shadow
文件下。此外
Linux所有的组名都记录在/etc/group
内。
5文件权限
ls -l中显示的内容如下:
-
10个字符确定不同用户能对文件干什么
-
第一个字符代表文件(-)、目录(d),链接(l),设备文件里面可供存储的接口设备(b),设备文件里面串行端口设备(c),套接字(s),管道(p)
-
其余字符每3个一组(rwx),读(r)、写(w)、执行(x)
-
第一组rw:文件所有者的权限是读、写
-
第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
-
第三组r–:不与文件所有者同组的其他用户的权限是读不能写和执行
也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7
-
1 表示有多少文件名链接到此节点(i-node)
-
第一个1202表示此文件(或目录)的“所有者账号”
-
第二个1202表示此文件所属用户组
-
1566 表示文件大小(默认单位是bytes)
-
Jul 10 17:30 表示最后修改日期
-
test.conf 表示文件名
修改文件属性与权限
一 chmod 命令是用于改变文件或目录的访问权限。
语法:chmod 字符组成格式 文件/目录
拥有者、用户组、其他人分别有不同的字符代表
另外上面的字符还拥有运算符进行属性的修改
eg:
chmod u=rwx,go=rx work ===>将work目录的拥有者赋予rwx权限,用户组与其他人赋予rx权限
chmod u-w work ===>将work目录的拥有者w权限去除
chmod u+w work ===>新增work目录的拥有者的w权限
二 chgrp命令
命令名称:chgrp
命令英文原意:change file group ownership
命令的所在路径:/bin/chgrp
执行权限:所有的用户
语法:chgrp [-cfhRv][--help][--version][所属群组][文件或目录...] 或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
参数说明
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quiet或--silent 不显示错误信息。
-h或--no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--verbose 显示指令执行过程。
--help 在线帮助。
--reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
--version 显示版本信息。
功能描述:用于变更文件或目录的所属群组
三 chown命令
Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。 。
一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限可以自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。
使用权限 : root
语法 chown [-cfhvR] [--help] [--version] user[:group] file...
参数 :
user : 新的文件拥有者的使用者 ID
group : 新的文件拥有者的使用者组(group)
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
--help : 显示辅助说明
--version : 显示版本
eg:
将文件 f1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :
chown runoob:runoobgroup f1.txt
linux中目录树架构示意图
/:根目录,一般根目录下只存放目录,不要存放件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中
/bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
/boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz 为 linux 的内核文件,以及 /boot/gurb。建议单独分区,分区大小100M即可
/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。
/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。
/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,表示当前用户的家目录,edu 表示用户 edu 的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
/lib: /usr/lib: /usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为 /lib/modules。
/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于 /disk 中,此目录下就会自动产生目录 /disk/lost+found
/mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载。
/opt:给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的 KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下
/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*
等。
/root:系统管理员root的家目录,系统第一个启动的分区为 /,所以最好将 /root和 /放置在一个分区下。
/sbin: /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用。
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
/srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内。
/usr:应用程序存放目录,/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls 时会查询 /usr/share/man/man1/ls.1.gz 的内容建议单独分区,设置较大的磁盘空间
/var:放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大的磁盘空间