linux怎么悠文件和目录权限linux操作系统(精选7篇)
chmod命令可以改变所有子目录的权限:
改变一个文件的权限:
代码如下复制代码
chmod mode file|dir
改变所有子目录的权限:
代码如下复制代码chmod mode dir -R
//注意后面加了个-R参数
如:将file目录下所有文件权限改为777:
代码如下复制代码
chmod 777 file -R
数字设定法
我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加,
所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。
关键词:Linux系统,权限管理
1 Linux文件权限简介
Linux是一个多用户和多多任务的操作系统, 在Linux系统中信息都存放在文件中, 系统里运行的程序都以文件的形式存储。不同的用户为了不同的目的使用操作系统是通过系统赋予用户对某个文件的特定权限来实现的。
Linux系统中文件或目录的访问权限分为读权限, 写权限和可执行权限三种, 分别用r、w和x表示。用户具有读权限可以使用cat、more等文件查看程序读取文件的内容, 这种方式仅仅是读取, 不能对文件进行修改;用户具有写权限可以在目录中创建新的文件或者修改已有的文件;用户具有执行权限可以执行一些可执行程序。在linux系统中, 有三种不同类型的用户可对对文件或者目录拥有不同的权限, 这三类用户是文件所有者, 同组用户、其他用户。
用户可以通过ls-l命令查看系统中目录或者文件的权限信息, 运行结果如下所示:
上述结果中第一列数据表示了文件或者目录的类型和权限信息, 其中第一位字符表示了该文件的类型;第二位到第十位字符表示了该文件所对应的系统中三类用户所具有的权限信息, 其中第二到四位表示该文件的所有者对该文件所具有的权限;第五到七位表示同组用户对该文件所具有的权限;第八到十位表示了系统中除了前两类用户以外的其他用户对该文件所具有的权限。这三组信息依次由r、w、x或者-组成, 如果在某个位置上的字符是-, 说明此类用户没有该位置上的某个权限。例如:rwx表示该用户具有读、写、执行的权限;r-x表示该用户具有读、执行权限, 而没有写权限。
2 Linux文件权限设置
确定了某个文件或者目录的访问权限以后, 用户可以使用linux系统提供的chmod命令来重新设置文件或者目录的访问权限, 达到控制不同用户对文件的不同的访问权限。该命令有两种用法。一是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
2.1 文字设定法
利用chmod设置文件权限的文字设定法的语法格式如下:
chmod[who][+|-|=][mode]文件名列表
选项Who的取值以及含义:u表示“属主 (user) ”, 即文件或者目录的所有者;g表示“所属组 (group) ”里的用户, 即组名或者组ID与文件中的组名或者组ID相同的用户;o表示既不属于属主 (user) , 也不属于group的其他用户;a表示“所有 (all) ”用户。它是系统默认值。选项中“+”表示添加某个权限;“-”表示取消某个权限;“=”表示赋予某个权限, 并取消原有的权限。Mode选项取值和含义:r表示可读权限;w表示可写权限;x表示可执行权限。命令中可以给出多种权限方式中间用逗号隔开。
应用实例1:为同组用户添加对文件a.txt的执行权限
应用实例2:取消其他用户对文件a.txt的写权限
应用实例3:重新赋予文件所有者对文件a.txt权限为读权限和写权限
应用实例4:为同组用户和其他用户添加对文件a.txt的写权限
应用实例5:取消同组用户对文件a.txt的写权限并添加其他用户对文件a.txt的写权限
2.2 数字设定法
数字设定法是与文字设定法功能等价的设定方法, 只不过比文字设定法更加简洁。数字设定法用3个二进制位来表示文件权限。第一位表示r权限 (可读) , 第二位表示w权限 (可写) , 也可以直接用十进制数计算。0表示没有权限, 1表示x权限, 2表示w权限, 4表示r权限, 然后将其相加。所以数字属性的格式应为3个从0到7的八进制数, 其顺序是 (u) 、 (g) 、 (o) 。其他的与文字设定法基本一致。
语法格式为:
其中mode由XXX三位数字组成, 第一位的数字表示所有者的权限, 第二位数字表示同组用户的权限, 第三位数字表示其他用户的权限, filename为设定权限的文件名称。
应用实例6:设置a.txt的文件权限使所有者具有读、写、执行权限;同组用户具有读、写权限;其他用户具有读、执行权限
分析:读权限用4表示, 写权限用2表示, 执行权限用1表示;所有者具有读、写、执行权限, 因此权限所代表的数字相加为4+2+1=7;同理同组用户权限为6, 其他用户权限为5, 综上所述, 字符数字设定法中的mode的应设置为765。
参考文献
[1]刘海涛, 等.Linux中文件权限管理的探讨[J].微型计算机信息, 2006 (3) .
[2]何明, 等.Linux培训教程[M].清华大学出版社, 2010.01.
[3]贺惠萍, 等.应用程序用户权限机制研究[J].微计算机信息, 2005, 9:19-21.
[4]罗琰, 等.Linux环境下访问控制列表机制的设计与实现.解放军理工大学学报 (自然科学版) , 2004.6.
[5]陈旭, 等.Linux系统网络安全问题分析及对策[J].合肥工业大学学报, 2002, 5 (3) .
具体方法
1、停止mysqld
1.
代码如下复制代码service mysqld stop
2、修改my.cnf
在[mysqld]中,把datadir=/var/lib/mysql更改为datadir=/home/mysql,把socket=/var/lib/mysql.sock更改为socket=/home/mysql/mysql.sock,
最终修改如下:
代码如下复制代码
1.[mysqld]
2.datadir=/home/mysql
3.socket=/home/mysql/mysql.sock
在[mysql]中添加socket路径:
代码如下复制代码
1.socket=/home/mysql/mysql.sock
3、移动data目录
代码如下复制代码
1.mv /var/lib/mysql /home
4、修改启动文件/etc/init.d/mysqld
把
代码如下复制代码
get_mysql_option mysqld datadir “/var/lib/mysql”
更改为
代码如下复制代码
get_mysql_option mysqld datadir “/home/mysql”
# cd /
# ls -al
total 448
drwxr-xr-x2 root root4096 May 22 04:02 bin
drwxr-xr-x2 root root4096 Sep 29 sbin
drwxr-xr-x 11 root root4096 Feb 20 04:02 lib
drwxr-xr-x 13 root root4096 Jun 26 10:55 home
drwxr-x---8 root root4096 Jul 10 14:06 root
drwxrwxrwt4 root root 315392 Jul 14 14:24 tmp
drwx------2 root root16384 Mar 242013 lost+found
drwxr-xr-x2 root root4096 Mar 10 mnt
drwxr-xr-x2 root root4096 Mar 102009 media
drwxr-xr-x 52 root root4096 Jul8 04:02 etc
drwxr-xr-x 18 root root4096 Aug 142013 var
drwxr-xr-x 13 root root4096 Mar 232013 usr
drwxr-xr-x2 root root4096 Mar 102009 opt
drwxr-xr-x 10 root root3060 May 21 16:31 dev
drwxr-xr-x3 root root4096 Mar 232013 boot
drwxr-xr-x2 root root4096 Mar 102009 srv
drwxr-xr-x2 root root4096 Mar 232013 selinux
drwxr-xr-x 11 root root0 May 22 00:29 sys
dr-xr-xr-x 80 root root0 May 22 00:29 proc
/bin 保存二进制的可执行程序,系统中经常用到的一些命令(例如cp、echo、rm、tar等等)都是保存在这里的,
这个文件夹下的程序普通用户都可以使用。
/sbin 和/bin类似,也是保存一些二进制的可执行文件,其中的大部分文件多是系统管理员使用的基本的系统程序,所以虽然普通用户必要且允许时可以使用,但一般不给普通用户使用。
/lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/root 系统管理员的主目录
/tmp 公用的临时文件存储点,编写的脚本文件中需要写临时文件就可以写到这个目录
/lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件会放到这里
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统。
/media 移动存储,系统自动挂载的时候一般会放在这里
/etc 系统管理和配置文件
/var 是储存各种变化的文件,比如log等等
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录
/opt 第三方软件在安装时默认会找这个目录
/dev 目录存放了设备文件,即设备驱动程序,用户通过这些文件访问外部设备。比如,用户可以通过访问/dev/mouse来访问鼠标的输入,就像访问其他文件一样。
/boot 里面放的是有关系统启动的东西,例如内核、GRUB等等
/srv 服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内
简单命令
代码如下复制代码
$xz -d ***.tar.xz
$tar -xvf***.tar
可以看到tar.xz 文件,采用双层压缩方式,外层用xz压缩,里层用tar压缩
下在看在Centos中:
yum -y install xz 完成后
运行 xz -d x.tar.xz 得到 x.tar ,
不归我们操作分给她128M就可
保存系统的引导相关文件:比如,内核文件,引导文件grub
/etc目录:
系统常用的配置文件,所以备份系统时一定要备份此目录
比如:系统管理员经常需要修改的文件,决定系统行为的配置文件
/bin目录:
存放用户常用的命令,注意:所有的用户都可以使用。
比如:ls,cp。。。
/sbin目录:
保存系统维护所使用的命令,很多命令,普通用户是不可用的,大部分只有root可用
如: fdisk:分区
mkfs:格式化
/lib目录:
保存系统运行所需要的库文件,安装程序时,自动把库拷贝到此处
如: C语言以.a为后缀名的静态库文件
以.so为扩展名的动态库文件
/dev目录:
存放系统设备文件
如: /dev/cdrom
/dev/hda
/dev/sdb
/var目录:
保存变化的数据,系统运行时的数据
如:日志文件:log
邮件文件:mail
脱机文件等
/mut目录:
系统用来安装文件系统设备的目录
为了方便,一般把设备都挂载到mut目录下
如:光盘:mut/cdrom
U盘:mut/sdb2
/proc目录:
系统内存/CPU的映射,虚拟的文件系统,不占空间
如:查看内存大小:vimmeminfo
查看CPU:vim cpuinfo
他删除之后,重启,则又会映射过来了
/tmp目录:
用来保存系统运行是产生的临时文件
如:编程时的临时数据
/usr目录:
系统中用来保存与用户相关的信息,是最大的
如:安装软件等,
/home目录:
系统中,普通用户的主目;cd默认返回自己的家目录
/root目录:
系统中,超级用户的主目录
先确认下安装上了没,可以使用
代码如下复制代码[root@localhost sv005-mongodb]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
或者使用命令
[root@localhost sv005-mongodb]# chkconfig --list vsftpd
vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
如果没有安装我们需要先是需要安装:
代码如下复制代码yum install vsftpd
然后启动vsftpd : /etc/init.d/vsftpd start
vi /etc/vsftpd/vsftpd.conf 修改里面的 这两项:
chroot_local_user=YES (须添加)
chroot_list_enable=NO
然后 保存即可!
创建用户组:
groupadd 用户组
useradd -g webusers -d /路径 用户名
passwd 用户名 修改用户的密码。
chown -R 用户名:用户组 /路径/
刚才由于修改了配置文件 所以要记得重启:service vsftpd restart
OK ! 成功了!
到上面就完成了,如果你还需要加一些虚拟用户,我们可向下看
vsFTPD配置虚拟用户
FTP用户一般是不能登录系统的,这也是为了安全。在系统中,没有权限登录系统的用户一般也被称之为虚拟用户;虚拟用户也是要写进 /etc/passwd中;这只是一种虚拟用户的方法,但说实在的并不是真正的虚拟用户,只是把他登录SHELL的权限去掉了,所以他没有能力登录系统;如果我们想把beinan这个用户目录定位在/opt/beinan这个目录中,并且不能登录系统;我们应该如下操作。
代码如下复制代码[root@localhost ~]# adduser -d /opt/beinan -g ftp -s /sbin/nologin beinan[root@localhost ~]# passwd beinan
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]#
其实这还是不够的,还要改一下配置文件vsftpd.conf ,以确保本地虚拟用户能有读写权限;
local_enable=YES
write_enable=YES
local_umask=022
如何实现虚拟路径?
比如:
代码如下复制代码/home/a 映射为 ftp://localhost/a/home/b/c 则为 ftp://localhost/c
可以通过如下的方法来实现,
[root@localhost ~]# mount –bind [原有的目录] [新目录]
比如我的ftp的默认目录是/var/ftp,我想把/mnt/LinG/WinSoft文件夹,映射到/var/ftp目录中,我就如下操作
我们要先在/var/ftp目录中建一个目录
代码如下复制代码[root@localhost ~]# mkdir /var/ftp/WinSoft然后执行mount命令
[root@localhost ~]# mount –bind /mnt/LinG/WinSoft /var/ftp/WinSoft
这样就OK了。
打开Linux vsFTPDv服务器的日志功能
把下面xferlog_file前面的#号对掉,也就是把vsftp的log功能打开,这样我们就能在/var/log目录下查看vsftpd.log。这是vsFTP的日志功能,这对于我们来说是极为重要的。xferlog_file=/var/log/vsftpd.log如何让vsFTP服务器限制链接数,以及每个IP最大的链接数?应该改Linux vsFTPD服务器的配制文件vsftpd.conf,加入下面的两行:
max_clients=数字
max_per_ip=数字
举例:我想让我的vsFTP最大支持链接数为100个,每个IP,最多能支持5个链接,所以我应该在vsftpd.conf中加上如下的两行:
max_clients=100
max_per_ip=5
如何限制传输速度?
anon_max_rate=数字
注:这是匿名的速度
local_max_rate=数字
注:这是vsFTP服务器上本地用户的速度
注:这个数字的单位是byte,所以我们要计算一下。
比如我想让匿名用户和vsFTP上的用户都以80KB下载,所以这个数字应该是1024×80=81920
所以我们要在vsftpd.conf中加入下面的两行
anon_max_rate=81920
local_max_rate=81920
下面是一些常用的命令:
管理用户组(group)的工具或命令;
groupadd 注:添加用户组;
groupdel 注:删除用户组;
groupmod 注:修改用户组信息
groups 注:显示用户所属的用户组
用户管理命令
useradd 注:添加用户
userdel 注 :删除用户
adduser 注:添加用户
passwd 注:为用户设置密码
【linux怎么悠文件和目录权限linux操作系统】推荐阅读:
linux文件系统基础02-05
linux实现共享文件共享01-30
MMC不能打开文件怎么办12-09
回收站的文件删除了怎么恢复12-20
oppo文件管理删除的图片怎么恢复01-30
《文件和文件夹的操作》教学设计09-22
技术文件文件目录02-04
安卓文件目录09-06
备案文件目录09-18
申请文件目录01-12