centos 修改文件夹权限(普通用户对文件权限受限解决方法)
大家好,今天来为大家解答centos 修改文件夹权限这个问题的一些问题点,包括普通用户对文件权限受限解决方法也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
CentOS系统管理基本权限和归属的详解
Linux系统管理_基本权限和归属-RedhatEnterprise5
文件和目录在linux系统中是最为重要的,经常使用root用户登录系统可能没感觉,一旦使用普通用户的时候,就会发现权限这个很棘手的问题,最近一段时间在学习关于文件和目录的权限,想了一下,可以从这四个方面来总结一下:
一基本权限和归属关系
二,文件和目录的权限
三,权限的设置:chmod,umask,mkdir-m
四,文件和目录的所有者和所属组:chown,chgrp
扩展:
Linux系统管理_附加控制权限:
Linux系统管理_用户和用户组:
Linux系统管理_ACL访问控制:
一:基本权限和归属关系
1,访问权限:
-读取:允许查看内容-read
-写入:允许修改内容-write
-可执行:允许运行和切换-excute
注:可执行权限对于目录来说,对应的位置有x权限,意为是否可进入该目录;
而对于文件来说,有x权限,意为该文件可执行,如程序(命令)的所有者权限中都有x权限。
2,归属关系:
-属主:拥有此文件或目录的用户-user
-属组:拥有此文件或目录的组-group
-其他用户:除属主、属组以外的用户-other
最终权限:访问权限和归属关系共同决定最终权限
二:文件和目录的权限
[root@localhost/]#ll-d/etc/passwd/boot/
drwxr-xr-x4rootroot10242013-07-10/boot///目录
-rw-r--r--1rootroot168102-1710:23/etc/passwd//文件
12345678
第一段:d代表该目标为目录,-代表该目标位文件
第二段:rwxr-xr-x:文件和目录的权限位
注:一共九位,前三位为user(所有者)的权限,中间三位为group(所属组)的权限,最后三位为other(其他用户)的权限。
其中r用数字标示为4,w为2,x为1
第三段:对于文件来说,为硬链接数;
对于目录来说,为该目录下有多少个目录,其中包括隐藏目录“.”和“..”。
第四段:为属主,即文件或目录的所有者
第五段:为所属组
第六段:文件的大小,默认情况下单位为bit(字节)
第七段:为最后修改的时间
第八段:文件或目录的名称
三:设置基本权限:chmod、umask和mkdir-m
1,chmod命令
-格式:chmod[ugoa][+-=][rwx]文件/目录
chmod[nnn]文件/目录(n代表权限的数字形式)
常用选项:-R:递归更改权限
--reference=:以指定文件或目录做模板(这个不重要)
示例:
1,修改Desktop的相关属性,分别使用字符权限和数字权限进行设置
[root@localhost~]#ll-dDesktop/
drwxr-xr-x3rootroot409602-1603:40Desktop/
[root@localhost~]#chmodg+w,o-rxDesktop/
[root@localhost~]#ll-dDesktop/
drwxrwx---3rootroot409602-1603:40Desktop/
[root@localhost~]#chmod755Desktop/
[root@localhost~]#ll-dDesktop/
drwxr-xr-x3rootroot409602-1603:40Desktop/
2,创建一个可执行文件,并赋予所有者x权限
[root@localhost~]#echo"echoHelloWorld">test.sh
[root@localhost~]#ll-lhtest.sh
-rw-r--r--1rootroot1702-1821:12test.sh
[root@localhost~]#chmod+xtest.sh//+x默认为所有者添加该权限
[root@localhost~]#ll-lhtest.sh
-rwxr-xr-x1rootroot1702-1821:12test.sh
[root@localhost~]#./test.sh
HelloWorld
[root@localhost~]#
2,umask命令:新建文件或目录的默认权限
-一般文件默认不给x执行权限
-其他取决于umask设置
-umask值可以进行设置(为临时,umask0027即讲umask值设置为0027,可使用umask查看)
注1:由于文件默认不给x权限,所以创建一个新文件的最大权限为666,创建一个目录的最大权限为777。
注2:umask默认值为022(----w--w-),也就是说:
新建一个文件时缺省权限为:
为rw-rw-rw-和----w--w-的差,即为rw-r--r--;即为644(注:不能用777或666减去022)
新建一个目录时缺省权限为:
为rwxrwxrwx和----w--w-的差,即为rwxr-xr-x;即为755
示例:
[root@localhost~]#umask
0022
[root@localhost~]#mkdirmulu1
[root@localhost~]#touchfile1.txt
[root@localhost~]#ll-dmulu1/file1.txt
-rw-r--r--1rootroot002-1821:22file1.txt//默认文件权限为644
drwxr-xr-x2rootroot409602-1821:21mulu1///默认目录权限为755
[root@localhost~]#umask0027//将umask值设置为0027
[root@localhost~]#umask
0027//修改之后umask值为0027
[root@localhost~]#mkdirmulu2//修改umask值后再次创建目录
[root@localhost~]#touchfile2.txt//修改umask值后再次创建文件
[root@localhost~]#ll-dmulu2/file2.txt
-rw-r-----1rootroot002-1821:28file2.txt
drwxr-x---2rootroot409602-1821:28mulu2/
[root@localhost~]#
可以看到umask值设置为0027之后,那么创建的目录和文件的权限方面other用户将不再拥有任何权限。
3,mkdir-m
mkdir为创建一个目录,-m参数可以直接指定即将创建目录的权限
mkdir
四,文件和目录的所有者和所属组:chown,chgrp
1,chown:设置文件或目录的归属关系
-格式:chown属主文件或目录//修改文件或目录的所有者
chown:属组文件或目录//修改文件或目录的所属组
chown属主:属组文件或目录//修改文件或目录的所有者和所属组
-R选项:递归修改权限
--reference选项:以指定目录或文件作为模板(作为了解)
示例:
首先修改file1.txt的权限
然后以file1.txt为模板修改file2.txt文件的权限所有者和所属用户组。
[root@localhost~]#touchfile1.txt
[root@localhost~]#touchfile2.txt
[root@localhost~]#llfile*
-rw-r--r--1rootroot002-1821:43file1.txt
-rw-r--r--1rootroot002-1821:43file2.txt
[root@localhost~]#useradduser1
[root@localhost~]#chownuser1:user1file1.txt//修改file1.txt所有者为user1
//所属组为user1
[root@localhost~]#llfile*
-rw-r--r--1user1user1002-1821:43file1.txt
-rw-r--r--1rootroot002-1821:43file2.txt
[root@localhost~]#chown--referencefile1.txtfile2.txt//file2.txt将会复制file1.txt的属性
[root@localhost~]#llfile*
-rw-r--r--1user1user1002-1821:43file1.txt
-rw-r--r--1user1user1002-1821:43file2.txt//所有者和所属组为和
//file1.txt相同
2,chgrp:设置文件或目录的所属组
chgrp属组文件或目录:修改文件或目录为的所属组
注:相当于chown:属组文件或目录
[root@localhost~]#llfile*
-rw-r--r--1user1user1002-1821:43file1.txt
-rw-r--r--1user1user1002-1821:43file2.txt
[root@localhost~]#chgrprootfile1.txtfile2.txt//修改file1和file2的属主
[root@localhost~]#llfile*
-rw-r--r--1user1root002-1821:43file1.txt//属主变为root
-rw-r--r--1user1root002-1821:43file2.txt//属主变为了root
[root@localhost~]#
总结:
chmod,chown,chgrp这三个命令虽然参数很少,但是总是容易搞混,不过用的多了,用的熟练了就能记住了,chmod修改的是权限,chown修改的是所属用户和组,chgrp修改的是所属组。
最需要注意的是umask的值的设定,新建文件和文件夹时的默认权限!
CentOs ftp 设置用户访问指定目录
使用root账号登录centos系统
检查是否已安装vsftp
rpm-qa|grep vsftpd#未输出信息,表示未安装vsftp
通过yum安装vsftp
yum-y install vsftpd
ftp启动、重启、停止、状态查询命令
service vsftpd start#启动ftpservice vsftpd stop#停止ftpservice vsftpd restart#重启ftpservice vsftpd status#查询ftp状态
设置为开机启动(可设置)
chkconfig vsftpd on
设置配置文件
vi/etc/vsftpd/vsftpd.conf
修改如下内容:
anonymous_enable=NO#设置不允许匿名账户登录chroot_local_user=YES#所有用户限制在主目录中chroot_list_enable=NO#不启动限制用户名单,直接限制所有用户userlist_enable=NO#当为YES时只有userlist_file文件中指定的用户才能登录allow_writeable_chroot=YES#(在文件尾部新增)防止用户有写入权限时报错local_root=/home/www#(在文件尾部新增)设置用户的根目录
重启ftp
service vsftpd restart
创建ftp用户
创建用户组
groupadd ftpgroups
创建用户
# useradd添加用户命令-d/home/www指定用户根目录-g ftpgroups加入用户组 ftptest用户名useradd-d/home/www-g ftpgroups ftptest
设置用户密码
passwd ftptest# passwd(命令) ftptest(用户名,根据你实际情况写)
设置不允许用于系统登录
usermod-s/sbin/nologin ftptest#ftptest(用户名,根据你实际情况写)
设置文件权限
chmod 755/home/www
设置目录拥有者
chown-R ftptest:root/home/www#ftptest:ftp用户名;/home/www:文件目录
设置防火墙
查看防火墙状态,如果未启动,直接跳过本步骤
systemctl status firewalld
开放20、21端口(阿里云服务器还需配置安全组开放防火墙)
firewall-cmd--permanent--zone=public--add-port=20/tcpfirewall-cmd--permanent--zone=public--add-port=20/udpfirewall-cmd--permanent--zone=public--add-port=21/tcpfirewall-cmd--permanent--zone=public--add-port=21/udpfirewall-cmd--reload#重新载入
至此ftp服务安装成功,如果出现不能访问或不能写入的情况,就还需要设置SELinux(关闭)
sestatus-v#查看SELinux状态,如果SELinux status参数为enabled即为开启状态setenforce 0#临时关闭(不用重启机器)
如何在CentOS系统利用命令行操作文件以及文件夹
下面总结一些linux,CentOS下面常用的命令:
cd pwd
NO1.显示当前路径
[root@rehat root]# pwd
NO2.返回用户主目录
[root@rehat root]# cd
NO3.改变到其它路径
[root@rehat root]# cd/etc
NO4.返回到上一级目录
[root@rehat root]# cd..
NO5.返回到根目录
[root@rehat root]# cd/
查询文件或文件夹的CentOS常用命令 find
NO1.查找当前用户主目录下的所有文件
[root@rehat root]# find~
NO2.让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;
[root@rehat root]# find.-perm 644-exec ls-l{}\;
NO3.为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;
[root@rehat root]# find/ size 0-type f-exec ls-l{}\;
NO4.查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;
[root@rehat root]# find/var/logs-mtime+7-type f-ok rm-i{}\;
NO5.为/找系统中所有属于root组的文件;
[root@rehat root]# find/-group root-exec ls-l{}\;
NO6. find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件
[root@rehat root]# find.-name"admin.log[0-9][0-9][0-9]"-atime-7-ok rm{}\;
NO7.为了查找当前文件系统中的所有目录并排序
[root@rehat root]# find.-type d| sort
NO8.为了查找系统中所有的rmt磁带设备
[root@rehat root]# find/dev/rmt
显示文件/文件夹清单的CentOS常用命令 ls/ dir
NO1.显示所有文件,包括以.开头的隐含文件
[root@rehat root]# ls-a
NO2.显示文件的详细信息
[root@rehat root]# ls-l
NO3.显示当前目录及所有子目录信息
[root@rehat root]# ls-Rl
NO4.以时间排序显示目录,这在找最新文件有用
[root@rehat root]# ls-tl
NO5.以文件大小排序
[root@rehat root]# ls-Sl
NO6.显示文件大小,并按大小排序
[root@rehat root]# ls-s-l-S
移动或更改文件/文件夹名称的CentOS常用命令 mv与 cp命令用法相似
NO1.若移动目标文件已存在,要在移动之前,先备份原来的目录文件
[root@rehat root]# mv-b test.txt test2/
这样在 test2下将有两个文件 test.txt及 text.txt~
其中 test.txt~是备份文件,test.txt是新的文件
NO2.若移动目标文件已存在,但不想弹出是否覆盖的提示,直接覆盖
[root@rehat root]# mv-f test.txt test2/
NO3.当源与目标都拥有同一个文件,若源文件比目标新则移动,否则不移动
[root@rehat root]# mv-u test.txt test2/
NO4.更改文件名称
[root@rehat root]# mv test.txt test2.txt
NO5.更改目录名称
[root@rehat root]# mv/test2/test2_2[/size]
创建/改变文件系统的CentOS常用命令
NO1.创建文件系统类型
[root@rehat root]# umount/dev/sdb1
[root@rehat root]# mkfs-t ext3/dev/db1
[root@rehat root]# mount/dev/sdb1/practice
改变文件或文件夹权限的CentOS常用命令chmod
NO1.将自己的笔记设为只有自己才能看
[root@rehat root]# chmod go-rwx test.txt
或者
[root@rehat root]# chmod 700 test.txt
NO2.同时修改多个文件的权限
[root@rehat root]# chmod 700 test1.txt test2.txt
NO3.修改一个目录的权限,包括其子目录及文件
[root@rehat root]# chmod 700-R test
改变文件或文件夹拥有者的CentOS常用命令
chown该命令只有 root才能使用
NO1.更改某个文件的拥有者
[root@rehat root]# chown jim:usergroup test.txt
NO2.更改某个目录的拥有者,并包含子目录
[root@rehat root]# chown jim:usergroup-R test
查看文本文件内容的CentOS常用命令cat
NO1.查看文件内容,并在每行前面加上行号
[root@rehat root]# cat-n test.txt
NO2.查看文件内容,在不是空行的前面加上行号
[root@rehat root]# cat-b test.txt
NO3.合并两个文件的内容
[root@rehat root]# cat test1.txt test2.txt> test_new.txt
NO4.全并两具文件的内容,并追回到一个文件
[root@rehat root]# cat test1.txt test2.txt>> test_total.txt
NO5.清空某个文件的内容
[root@rehat root]# cat/dev/null> test.txt
NO6.创建一个新的文件
[root@rehat root]# cat> new.txt按 CTRL+ C结束录入
编辑文件文件的CentOS常用命令vi
NO1.新建档案文件
[root@rehat root]# vi newfile.txt
NO2.修改档案文件
[root@rehat root]# vi test.txt test.txt已存在
NO3. vi的两种工作模式:命令模式,编辑模式
NO4.进入 vi后为命令模式,按 Insrt键进入编辑模式
按 ESC进入命令模式,在命令模式不能编辑,只能输入命令
NO5.命令模式常用命令
:w保存当前文档
:q直接退出 vi
:wq先保存后退出。
:q!强制不保存退出
创建目录的CentOS常用命令mkdir
NO1.在当前路径创建一级目录
[root@rehat root]# mkdir test
NO2.在当前路径创建多级目录
[root@rehat root]# mkdir-p mytest/test1/test1_1
NO3.在创建目录的同时给新建的目录赋权限
[root@rehat root]# mkdir-m 777 testmod
这样任何人对此目录都有任何权限
复制文件与文件夹的CentOS常用命令cp
NO1.复制指定目录的文件到当前目录,并重命名
[root@rehat root]# cp~/.bashrc bashrc_bak
NO2.强制复制指定目录的文件到当前目录,而不管当前目录是否含有该文件
[root@rehat root]# cp-f~/.bashrc bashrc
NO2.复制指定目录到当前目录
[root@rehat root]# cp-r/root/test.
[root@rehat root]# cp-r/root/test/.
两者效果一样,在复制目录时,会将源路径的最后一级目录全部复制过去,包括它本身。
NO3.复制指定目录的文件到指定目录
[root@rehat root]# cp~/.bashrc/bak/.bashrc
NO4.在复制时将源文件的全部属性也复制过来。若不指定参数,则目标文件与源文件属性可能不一致。
[root@rehat root]# cp-a~/.bashrc/bak/.bashrc
NO5.若两个文件夹要保证同步,一个文件的改了,另一个文件也跟着改,但是要保证两个文件的文件都是最新的。
[root@rehat root]# cp-u/src/.bashrc/bak_src/bashrc
建立链接文件,包括硬链接与软链接的CentOS常用命令ln
NO1.建立类似于 Windows的快捷方式
[root@rehat root]# ln-s test.txt test.txt_slnk
NO2.当想备份一个文件,但空间又不够,则可以为该文件建立一个硬连接。这样,就算原文件删除了,只要该链接文件没被删除,则在存储空间里还是没有被删除。
[root@rehat root]# ln-l test.txt test.txt_hlnk
使用CentOS常用命令查看cpu
more/proc/cpuinfo| grep"model name"
grep"model name"/proc/cpuinfo
[root@localhost/]# grep"CPU"/proc/cpuinfo
model name: Intel(R) Pentium(R) Dual CPU E2180@ 2.00GHz
model name: Intel(R) Pentium(R) Dual CPU E2180@ 2.00GHz
如果觉得需要看的更加舒服
grep"model name"/proc/cpuinfo| cut-f2-d:
使用CentOS常用命令查看内存
grep MemTotal/proc/meminfo grep MemTotal/proc/meminfo| cut-f2-d: free-m|grep"Mem"| awk'{print$2}'
使用CentOS常用命令查看cpu是32位还是64位查看CPU位数(32 or 64)
getconf LONG_BIT
使用CentOS常用命令查看当前linux的版本
more/etc/redhat-release
cat/etc/redhat-release
使用CentOS常用命令查看内核版本
uname-r
uname-a
使用CentOS常用命令查看当前时间
date上面已经介绍如何同步时间了
使用CentOS常用命令查看硬盘和分区
df-h
fdisk-l
也可以查看分区
du-sh
可以看到全部占用的空间
du/etc-sh
可以看到这个目录的大小
使用CentOS常用命令查看安装的软件包,查看系统安装的时候装的软件包
cat-n/root/install.log
more/root/install.log| wc-l
查看现在已经安装了那些软件包
rpm-qa
rpm-qa| wc-l
yum list installed| wc-l
不过很奇怪,我通过rpm,和yum这两种方式查询的安装软件包,数量并不一样。没有找到原因。
使用CentOS常用命令查看键盘布局
cat/etc/sysconfig/keyboard
cat/etc/sysconfig/keyboard| grep KEYTABLE| cut-f2-d=
使用CentOS常用命令查看selinux情况
sestatus
sestatus| cut-f2-d:
cat/etc/sysconfig/selinux
使用CentOS常用命令查看ip,mac地址
在ifcfg-eth0文件里你可以看到mac,网关等信息。
ifconfig cat/etc/sysconfig/network-scripts/ifcfg-eth0| grep IPADDR cat/etc/sysconfig/network-scripts/ifcfg-eth0| grep IPADDR| cut-f2-d= ifconfig eth0|grep"inet addr:"|awk'{print$2}'|cut-c 6- ifconfig| grep'inet addr:'| grep-v'127.0.0.1'| cut-d:-f2| awk'{ print$1}'
查看网关
cat/etc/sysconfig/network
查看dns
cat/etc/resolv.conf
使用CentOS常用命令查看默认语言
echo$LANG$LANGUAGE
cat/etc/sysconfig/i18n
使用CentOS常用命令查看所属时区和是否使用UTC时间
cat/etc/sysconfig/clock
使用CentOS常用命令查看主机名
hostname
cat/etc/sysconfig/network
修改主机名就是修改这个文件,同时最好也把host文件也修改。
使用CentOS常用命令查看开机运行时间
uptime
09:44:45 up 67 days, 23:32,...
看来刚才确实是网段的问题,我的机器还是67天前开机的。
系统资源使用情况
vmstat 1-S m procs-----------memory-------------swap-------io------system-------cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 233 199 778 0 0 4 25 1 1 3 0 96 0 0 0 0 0 233 199 778 0 0 0 0 1029 856 13 1 86 0 0
删除文件的CentOS常用命令rm
NO1.删除当前目录的文件
[root@rehat root]# rm test.txt
NO2.强制删除当前目录的文件,不弹出提示
[root@rehat root]# rm-f test.txt
NO3.强制删除整个目录,包括目录与文件全部删除,需要管理员权限
[root@rehat root]# rm-r-f test
删除文件夹的CentOS常用命令rmdir
NO1.删除一个空目录
[root@rehat root]# rmdir emptydir
NO2.删除多级空目录
[root@rehat root]# rmdir-p emptydir/d1/d11
挂载文件系统与卸载文件系统的CentOS常用命令
mount/ umount
NO1.挂载光驱
[root@rehat root]# mount-t iso9660/dev/cdrom/mnt/cdrom
NO2.挂载光驱,支持中文
[root@rehat root]# mount-t iso9660-o codepage=936,iocharset=cp936/dev/cdrom/mnt/cdrom
NO3.挂载 Windows分区,FAT文件系统
[root@rehat root]# mount-t vfat/dev/hda3/mnt/cdrom
NO4.挂载 Windows分区,NTFS文件系统
[root@rehat root]# mount-t ntfs-o iocharset=cp936/dev/hda7/mnt/had7
No5.挂载 ISO文件
[root@rehat root]# mount-o loop/abc.iso/mnt/cdrom
NO6.挂载软驱
[root@rehat root]# mount/dev/fd0/mnt/floppy
NO7.挂载闪盘
[root@rehat root]# mount/dev/sda1/mnt/cdrom
NO8.挂载 Windows操作系统共享的文件夹
[root@rehat root]# mount-t smbfs-o username=guest,password=guest//machine/path/mnt/cdrom
NO9.显示挂载的文件系统
[root@rehat root]# mount
[root@rehat root]# cat/etc/fstab显示系统启动自动加载的文件系统
[root@rehat root]# cat/etc/mtab显示当前加载的文件系统