【转】Centos系统文件与用户权限分配详解ftp,nginx,php
linux系统中权限是非常完善的一个功能了,我们如果设置不正确文件就无法使用了,像我们以一般情况需要把文件权限设置为777或644了,对于用户权 限就更加了,像素ftp,nginx,php这些我们都可以给它们设置一个用户并且设置不同权限了,下面我们一起来看看文件与用户权限分配
文件权限设置
权限管理
主要的命令有: chmod、chown、chgrp、umask
1). 改变文件或目录的权限
chmod
2). 改变文件或目录的所有者
chown
3). 改变文件或目录的所属组
chgrp
4). 显示、设置文件与目录的缺省权限
umask
我想要改改目录权限的初衷,是因为我想将这个服务器配置更像虚拟主机一样,因为我的运行环境是nginx+php-
fpm,我将他们的运行用户都设置为nginx,组设置为ftp,以我的名字建了ftp账户,用户名为zhangcunchao,所属当然也是ftp,这
样php运行的用户和nginx运行用户和ftp账户都属于一个组,那么我们程序中如果有需要程序有写权限的,只需要指定664即可。
linux的用户是可以共用一个uid的,即,我可以让ftp账户的uid和php运行用户一个id,但是这样,相当于将所用虚拟主机目录都设置为777没有太大区别,安全漏洞太大。既然我们需要配置权限最优的话,是有这样几个原则的。
1.php所在目录,php运行用户是需要对目录执行权限的,不然php运行不了;
2.但是一般的php文件不需要有执行和写的权限,因为php程序时被进程读取加载运行的,所以一般644就可以了,当然也包括其他文件
3.不存放php的目录,如果只需要读,就755,如果需要有写,那么可以775,因为ftp和php是一个组
4,所有需要php对文件有写权限的文件,都可以664了。
这里有两个组合命令,非常好用,可以用于项目初始;
find /path -type f -exec chmod 644 {} ; //设置文件权限为644
find /path -type d -exec chmod 755 {} ; //设置目录权限为755
然后我们可以再对需要有写权限的单独开放组的写权限即可
如果一个目录下所有文件都需要有写权限可以这样
chmod -R 644 目录/*.*
尽量避免所有文件目录都777,我们要保证方便的同时,尽量保证安全,权限最低原则
1.
chgrp,改变文件所属用户组;
chown,改变文件所有者;
chmod,改变文件的权限。
2.
chgrp就是change group的简称,使用该指令时,要被改变的组名必须在/etc/group文件内存在才行。
#chgrp [-R] group filename(or dirname),其中R表示进行递归(recursive)的持续更改,也即连同子目录下的所有文件、目录。所以当修改一个目录中所有文件的用户组(所有者与权限也一样)时,要加上-R。
例如将文件install.log改到users用户组
$chgrp users install.log
3.
chown就是change owner的简称。
#chown [-R] user filename(or dirname),改变file的文件所有者为user。
#chown [-R] .group filename(or dirname),改变file的用户组为group(注意加点)。
#chown [-R] user.group filename(or dirname),改变file的文件所有者为user,用户组为group。为避免“.”引起的系统误判,通常用一下命令表示该句:
#chown [-R] user:group filename(or dirname)。
4.
复制文件给其他人,复制命令:
$cp [-option] [source file or dir] [target file or dir]
复制行为(cp)会复制执行者的属性与权限,所以即使复制到他人用户组仍然无法使用,所以这时必须修改该权限。
5.
chmod就是change mode bits的简称。
数字类型改变文件权限:
#chmod [-R] xyz fileordir,其中x代表owner权限,y代表group权限,z代表others权限。
r=4,w=2,x=1,上面三种身份的权限是r+w+x的和,如果没有相应的权限,则值为0。
例如:install.log文件,owner=rwx=4+2+1=7,group=rwx=4+2+1=7,others=---=0+0+0=0,所以这个文件的将改变权限值为770:
#chmod 770 install.log。
6.
符号类型改变文件权限
我们可以用u,g,o三个参数来代表user,group,others 3种身份的权限。
a代表all,也即全部的身份。
读写的权限就可以写成r,w,x。
+,-,=分别代表加入,出去,设置一个权限。
加入要设置一个文件的权限成“-rwxr-xr-x,指令为:
#chmod u=rwx,go=rx filename,注意加上那个逗号。
要给一个文件的全部身份加上x权限,则指令为:
#chmod a+x filename。
用户&组权限&添加删除用户
上面介绍的是文件权限,下面来看用户&组权限&添加删除用户
2.Linux环境下的账户系统文件
账户系统文件主要在/etc/passwd, /etc/shadow,/etc/group,和/etc/gshadow四个文件中。
其中root的uid是0,从1-499是系统的标准账户,普通用户从uid 500开始。
3.使用命令管理账户
useradd 选项 用户名//添加新用户
usermod 选项 用户名//修改已经存在的用户
userdel -r 用户名//删除用户表示自家目录一起删除。
groupadd 选项 组名// 添加新组
groupmod 选项 组名//修改已经存在的组
groupdel 组名 //删除已经存在的特定组。
例子
useradd zhh888 //添加一个用户zh888
groupadd blog //新建一个blog组
useradd -G blog zh //表示创建一个新用户zh,同时加入blog附加组中。
useradd -d /var/ftp/pub -M ftpadmin //创建一个新用户ftpadmin,指定目录是/var/ftp/pub,不创建自家目录(-M)
usermod -G blog zh888 //表示将zh888添加到附加组blog中去。
userdel ftpadmin //表示删除ftpadmin用户
userdel -r zhh888 //表示删除zh888和/home中的目录一起删除。
groupdel blog //表示删除blog组。
4.口令管理及时效
创建用户之后就要给用户添加密码,设置的口令的命令式passwd
passwd 选项 用户名
passwd -l 用户名账号名//禁止用户账户口令
passwd -S 用户名//表示查看用户账户口令状态
passwd -u 用户名//表示恢复用户账号
passwd -d 用户名//表示删除用户账户口令
5.chage 命令
chage是保护密码的时效这样可以防止其他人猜测密码的时间。
chage 选项 用户名
参数有 -m days, -M days ,-d days, -I days ,-E date, -W days,-l
例子:
#chage -m 2 -M 30 -W zhh//表示的意思是要求用户zhh两天内不能更改密码,并且口令最长存活期是30天,并且口令过期5天通知zhh
6.用户和组的状态查询命令
whoami //用于显示当前的用户名称。
groups 用户名//表示显示指定的用户所属的组,如果没指定用户则是当前用户所属的组。
id //表示显示当前用户的uid gid和用户所属的组列表。
su - 用户//表示转换到其他用户,如果su表示切换到自己的当前用户。
newgrp 组名//表示转换用户的当前组到指定的附加组,用户必须属于该组才能进行。
7.更改属主和同组人
有时候还需要更改文件的属主和所属的组。只有文件的属主有权更改其他属主和所属的组,用户可以把属于自己的文件转让给大家。改变文件属主用chown命令
chown [-R] <用户名或组><文件或目录>
chown zh888 files//把文件files属主改成zh888用户。
chown zh888.zh888 files//将文件files的属主和组都改成zh888。
chown -R zh888.zh888 files//将files所有目录和子目录下的所有文件或目录的主和组都改成zh888.
8.设置文件的目录和目录生成掩码
用户可以使用umask命令设置文件默认的生成掩码。默认的生成掩码告诉系统创建一个文件或目录不应该赋予哪些权限。如果用户将umask命令放在环境文件.bash_profile中,就可以控制所有新建的文件和目录的访问权限。
umask [a1a2a3]
a1表示的是不允许属主的权限,a2表示的是不允许同组人的权限,a3代表不允许其他人的权限。
umask 022//表示设置不允许同组用户和其他用户有写的权限。
umask //显示当前的默认生成掩码。
9.特殊权限的设置
SUID SGID 和sticky-bit
除了一般权限还有特殊的权限存在,一些特殊权限存在特殊的权限,如果用户不需要特殊权限一般不要打开特殊权限,避免安全方面的问题。
【转】Centos系统文件与用户权限分配详解ftp,nginx,php的更多相关文章
- 【转载整理】mysql权限分配详解
原文:https://www.cnblogs.com/Csir/p/7889953.html MySQL权限级别 1)全局性的管理权限,作用于整个MySQL实例级别 2)数据库级别的权限,作用于某个指 ...
- mongodb 用户 权限 设置 详解
原文地址:http://blog.51yip.com/nosql/1575.html 我知道的关系型数据库都是有权限控制的,什么用户能访问什么库,什么表,什么用户可以插入,更新,而有的用户只有读取权限 ...
- linux用户管理,linux用户口令管理,linux用户组管理,linux用户权限管理详解
linux用户管理 http://www.qq210.com/shoutu/android 用户账号的添加(新加用户需添加用户口令) :增加用户账号就是在/etc/passwd文件中为新用户增加一条记 ...
- Linux(centos)系统各个目录的作用详解
Linux(centos)系统各个目录的作用详解 文件系统的类型 LINUX有四种基本文件系统类型:普通文件.目录文件.连接文件和特殊文件,可用file命令来识别. 普通文件:如文本文件.C语言元代码 ...
- SVN 权限配置详解
SVN权限详细配置 本章将详细介绍SVN权限配置涉及的两个配置文件, svnserve.conf 和 authz.conf,通过对配置逐行的描述,来阐明其中的一些细节含义.除此之外的其他配置.安装等内 ...
- 若依管理系统RuoYi-Vue(二):权限系统设计详解
若依Vue系统中的权限管理部分的功能都集中在了系统管理菜单模块中,如下图所示.其中权限部分主要涉及到了用户管理.角色管理.菜单管理.部门管理这四个部分. 一.若依Vue系统中的权限分类 根据观察,若依 ...
- Oracle权限管理详解
Oracle权限管理详解 转载--CzmMiao的博客生活 Oracle 权限 权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级.System 系统级. ...
- virtualbox centos安装增强工具和问题详解
virtualbox centos安装增强工具和问题详解 VirtualBox 大家都习惯性把它简称为 Vbox ,比 VM 的体积小.开源.速 度快.不过在使用 VirtualBox 在虚拟机中安装 ...
- Linux 系统的用户和组详解_【all】
1.Linux 用户和用户组详解 2.Linux 文件特殊权限详解 3.Linux 文件的读写执行权限的说明 4.Linux 架构之简述企业网站 5.Linux 环境变量设置详解 6.企业生产环境用户 ...
随机推荐
- 转载: C++ 转换构造函数 和 类型转换函数
1.对于系统的预定义基本类型数据,C++提供了两种类型转换方式:隐式类型转换和显式类型转换. ,sum; double b=5.55; sum=a+b;//-------(1) std::cout&l ...
- D3.js 让图表动起来
D3 支持制作动态的图表.有时候,图表的变化需要缓慢的发生,以便于让用户看清楚变化的过程,也能给用户不小的友好感. 一.什么是动态效果 绘制完成后不再发生变化的,这是静态的图表. 动态的图表,是指图表 ...
- Eclipse中导入外部jar包(zhuan)
http://jingyan.baidu.com/article/ca41422fc76c4a1eae99ed9f.html ************************************* ...
- 20160805_Win7x64刻录CentOS6.4x64启动光盘
使用的软件为:UltraISO.v.9.6.2.3059.exe Win7 x64 刻录 CentOS6.4 x64 启动盘,有提示错误信息. 网上查了一下,是 AHCI 的驱动没有安装.来到 联想t ...
- An unknown server-side error occurred while processing the command.处理
在调用resetAPP()时,报错:An unknown server-side error occurred while processing the command. 怎么解决呢?请看: 额,Ap ...
- UIButton 一个控件 实现 左图标右文本的效果
UIButton 一个控件 实现 左图标右文本的效果 如图,我们要实现一个 左边图标右边文本的效果,一般 可以考虑是 UIImageView + UILabel 不过,其实一个UIButton就可以搞 ...
- Django开发博客 入门篇
Django是神马? Django是一个开源免费的Web框架,使用Python编写.能够让你快速写出一个Web应用, 因为它包含了绝大部分的组件,比如认证,表单,ORM,Session,安全,文件上传 ...
- python 练习 8
#!/usr/bin/python # -*- coding: utf-8 -*- def ntom(x,size,mod): t=[0]*(size) j=0 while x and j<si ...
- div 自适应高度 自动填充剩余高度
方案1: Html: <div class="outer"> <div class="A"> 头部DIV </div> &l ...
- linux服务器挂载第二块磁盘图文解说
文章来源:http://www.cndns.com/help/help_con.aspx?hid=394 Linux磁盘挂载是比较常见的管理操作之一.我司橙云预装的linux系统有2块盘,一块为系统盘 ...