chmod ;修改目录权限
eg:chmod o-t /tmp
touch:创建新文件
rm -rf:删除文件
set gid 对目录的作用
1:默认情况下,用户建立的文件属于用户当前所在的组
2:目录上设置了setgid,表示在此目录中,任何人建立的文件,都会属于目录所属的组。
rm -rf test //删除之前的test目录
mkdir test // 在当前目录创建一个test目录
ls -ld test //查看这个目录的长格式明细
chgrp xiaowang test //更改test目录文件的所属组为xiaowang
ls -ld test //查看变换之后的结构发现目录文件的所属组变为xiaowang
cd test //切换到test目录
touch test.txt //在该目录先创建一个文件
ls -l //查看该文件的长格式明细,发现该文件的所属组并非xiaowang,而是root
这一例子说明了默认情况下,root用户建立的文件属于用户root当前所在的组
mkdir test1
ls -ld test1
chmod 745 test1
ls -ld test1
这个例子用来说明演示小写s和大写S
冒险位对目录作用
1:默认情况下,如果一个目录上有W和X权限,则任何人可以在此目录中建立与删除文件
2:一旦目录上设置了冒险位,则表示在此目录中,只有文件的拥有者,目录的拥有者与系统管理员可以删除文件
强制位对目录的作用
1:在可执行文件上,用户可以添加set uid和set gid。
2:默认情况下,用户执行一个指令,会以该用户的身份来运行进程。
3:指令文件上的强制位,可以让用户执行的指令,以指令文件的拥有者或所属组的身份运行进程。
设置强制位和冒险位
方法一:用户可以用chmod指令来为文件设置强制位和冒险位
set uid: chmod u+s 文件名
set gid: chmod g+s 文件名
sticky : chmod o+t 文件名
方法二:
4(set uid) 只能在文件上设定,不能再目录上设定
2(set gid) 都可以
1(sticky) 只能在目录上设定,不能再文件上设定
chmod 4777 test.txt
设置文件权限
硬链接和软链接
例:给目录建立软链接,In-s
cd /home //切换到home目录
ls //查看home目录下的文件
touch test.txt //在home目录下新建一个test.txt的文件
cd~ //切换到主目录
In/home/test.txt tom.txt //给home目录下的test.txt文件创建一个硬链接,这个链接此时在主目录下
ls //查看此时主目录下的文件,会发现有一个tom.txt的标示出现
ls -l // 以长形式查看主目录下的文件会出现tom.txt的详细信息
echo "Hello World" > /home/test.txt //往test.txt文件中写入Hello World
cat /home/test.txt //查看该文件里面的内容
Hello World
ls
cat tom.txt //直接查看这个硬链接
Hello World //得到的效果和直接查看原文件形式一致
rm -f /home/test.txt //强制删除这个文件
ls /home
//此时发现该目录下会没有上述文件
cat tom.txt
Hello World //此时这个硬链接里面的内容依然存在
从这个例子里面我们可以看出,硬链接的作用相当于原文件的一个备份,防止你误删除原文件
硬链接是不可以给目录做链接的
下面再来看看软链接的用法
touch /home/test.txt //在主目录下创建一个文件
echo “hello” >/home/test.txt //将hello写入这个文件
cat /home/test.txt //对该文件的内容加以查看
ln -s /home/test.txt jack.txt //给该文件建立一个软连接
ls -l //以长格式查看主目录下的文件
cat jack.txt //在主目录下直接查看这个文件
hello
rm -f /home.test.txt //强制删除已经建立的文件
ls /home/ //查看home目录下的内容
cat Jack.txt
//发现这个时候没有hello
即,软链接相当于快捷方式
ls
ls /home
ln /home/jack/
ln: /home/jack/: hard link not allowed for directory //不允许给目录创建硬链接
ln -s /home/jack/ /jack1 //给home目录下的jack目录创建一个名为jack1的软链接
ls -l
cd /
ls
cd jack1 //切换到jack1这个目录
ls
touch jack.txt /home/jack/
ls
jack.txt
允许给目录创建软链接
所属用户
每一个文件都有一个拥有者。文件的拥有者可以改变文件的权限
root用户可以用chown来改变文件的拥有者
chown xiaowang install.log
chown: 'xiaowang' invalid user //
useradd xiaowang //创建一个用户
chown xiaowang install.log //将该文件的拥有者更改为xiaowang
所属组
每一个文件都只有一个所属组
root用户可以用chown来改变文件的所属组
文件名
文件名的字符不超过256个
第一个字符为dot的文件是隐藏文件
目录
目录在文件类型上用d标识
用/分隔目录层
linux操作系统有且只有一个根目录
对每一个shell和操作环境,都有一个当前工作目录
.文件和..文件
.文件是对当前目录的一个硬链接(当前目录)
..文件时对上级目录的一个硬链接(当前目录的上一层目录)
pwd //查看当前目录
/root
cd . //切换到当前目录
pwd
/root
cd .. //切换到当前目录的上一级目录
/ //根目录
目录权限
目录也是一种文件
目录上的读写执行权限与普通文件有所不同:
读:用户可以读取目录内的文件
写:单独使用没有作用。与执行权限连用可以在目录内添加与删除文件
执行:用户可以进入目录
执行权限影响着用户是否能进入某一目录
ls
ls -ld test //查看test这个目录的长格式形式 文件类型 文件权限 所属用户 所属组 修改时间 文件名
chmod 777 test //修改文件权限
ls -ld test //修改完成以后再来查看文件权限比较两者不同
su - jack //将当前用户切换到jack用户
cd /test //将当前目录切换到test目录
ls //查看目录里的内容
touch test.txt //新建一个文件
ls
cd.. //切换当前目录到当前目录的上一级目录
su - //切换到主用户
chmod 775 test //再次修改文件目录权限
su - jack //修改完以后再切换到jack用户,原因在于只有root用户才能修改文件权限
cd /切换到根目录
ls ld test //查看长格式文件
cd /test //切换到test目录
ls
touch test1.txt //在test目录下创建一个文件 能否创建呢?这个要与之间文件权限的修改相结合
强制位与冒险位
除了读写执行权限以外,ext2文件系统还支持强制位(setuid和setgid)与冒险位(sticky)的特别权限
针对u,g,o,分别有set uid,set gid,以及sticky
强制位于冒险位添加在执行权限的位置上。如果该位置上原先已有执行权限。则强制位与冒险位以小写字母的方式表示,否则,以大写方式表
set uid与setgid 在u和g的x位置上各采用一个s,sticky使用给一个t
umask
每个用户建立文件时,此文件都会有默认权限
默认权限的值由环境中的umask值来确定
用户可以自主改动umask值,并在改动后建立的文件上得到体现
一般用户的默认umask值为002,系统用户的默认umask值为022
一般文件的权限是rw-rw-rw-
一般目录的权限是rwx-rwx-rwx
根目录下的目录
/bin:存放常用用户指令
/boot:存放核心、模块映像等启动用文件
/dev:存放设备文件
/etc:存放系统、服务的配置目录与文件
/home :存放个人主目录
/lib:存放库文件,诸如核心模块,驱动
/lost+found:存放fsck用的孤儿文件
/mnt:系统加载文件系统时用的常用挂载点
/opt:第三方工具使用的安装目录
/proc:虚拟文件系统,包含系统讯息等资料
/root:root用户的主目录
/sbin:存储系统管理用指令
/tmp:临时文件的暂存点
/usr:存放于用户直接相关的文件与目录
/var:存放在系统运行中可能会更改的数据