【转】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
除了一般权限还有特殊的权限存在,一些特殊权限存在特殊的权限,如果用户不需要特殊权限一般不要打开特殊权限,避免安全方面的问题。

时间: 2024-10-22 00:11:24

【转】Centos系统文件与用户权限分配详解ftp,nginx,php的相关文章

mongodb 用户 权限 设置 详解

原文地址:http://blog.51yip.com/nosql/1575.html 我知道的关系型数据库都是有权限控制的,什么用户能访问什么库,什么表,什么用户可以插入,更新,而有的用户只有读取权限. 例如:mysql安装配置好后,有一个自带的mysql数据库,里面有一张user表,用来存放用户,以及用户权限,而mongodb这个最像关系型的数据库,有没有这样的表呢. 一,掌握权限,理解下面4条基本上就差不多 1,mongodb是没有默认管理员账号,所以要先添加管理员账号,在开启权限认证. 2

Centos(Linux)下用户权限委派配置介绍

说到权限委派,对于一个服务的正常运行至关重要,对于企业中经常说到的一句话就是,权限越大,责任越大,当然危害也是最大的,当权限比较的时候误操作会给应用造成灾难性的损害,所以在权限分配上要绝对小心,当然,一般大的企业中,对于权限分配的是非常详细的,对于同一个服务会分不同的操作权限,所以相对来说比较安全的.这样出了问题直接可以找出对应的责任人.今天我们就介绍一下Centos下的用户权限委派,首先我们都知道Centos(Linux)下最大的权限账户为root,类似在windows中环境中的adminis

网络安全系列之三十一 组策略中的用户权限分配

在Win2003系统中打开组策略编辑器,展开[计算机配置\Windows设置\安全设置\本地策略\用户权限分配]. 通过用户权限分配,可以为某些用户和组授予或拒绝一些特殊的权限,如关闭系统.更改系统时间.拒绝本地登录.允许在本地登录等. 常用的用户权限分配策略主要有以下几个: (1)"从网络访问此计算机" 默认情况下任何用户都可以从网络访问计算机,可以根据实际需要撤销某用户或某组用户从网络访问计算机的权限. (2)"拒绝从网络访问这台计算机" 如果某些用户只在本地使

Web服务器管理系列:13、用户权限分配安全设置

本地策略中的用户权限分配项是一个很重要的设置项: 从网络访问计算机指的是在运行里面通过"\\192.168.1.100"这种形式访问计算机里面的共享资源,这个选项里面的账号建议全部删除,因为我们作为一个Web服务器不需要共享什么文件给别人用. 有些时候我们创建会为某个站点开始一个ftp帐户,这个账户的权限仅限于上传下载某些文件,所以我们需要拒绝他的本地登录权限: 添加需要拒绝本地登录的账户名称: 这样我们在登录系统的时候就不会出现这个账户了. Web服务器管理系列:13.用户权限分配安

Linux(centos)系统各个目录的作用详解

Linux(centos)系统各个目录的作用详解 文件系统的类型 LINUX有四种基本文件系统类型:普通文件.目录文件.连接文件和特殊文件,可用file命令来识别. 普通文件:如文本文件.C语言元代码.SHELL脚本.二进制的可执行文件等,可用cat.less.more.vi.emacs来察看内容,用mv来改名. 目录文件:包括文件名.子目录名及其指针.它是LINUX储存文件名的唯一地方,可用ls列出目录文件. 连接文件:是指向同一索引节点的那些目录条目.用ls来查看是,连接文件的标志用l开头,

Android权限Permission详解

android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,Android开发网提示应该是一个类似Windows Mobile中的托盘程序 android.permission.FACTORY_TEST 作为一个工厂测试程序,运行在root用户 android.permission.INSTALL_PACKAGES 允许一个程序安装packages android.permission.INTERNAL_SYSTEM_WINDOW 允许打开窗口使用系统

(转) shiro权限框架详解06-shiro与web项目整合(上)

http://blog.csdn.net/facekbook/article/details/54947730 shiro和web项目整合,实现类似真实项目的应用 本文中使用的项目架构是springMVC+mybatis,所以我们是基于搭建好的项目进行改造的. 将shiro整合到web应用中 登录 退出 认证信息在页面展现,也就是显示菜单 shiro的过滤器 将shiro整合到web应用中 数据库脚步 sql脚步放到项目中,项目上传到共享的资源中,文章最后给出共享url. 去除项目中不使用shi

Linux 系统的用户和组详解_【all】

1.Linux 用户和用户组详解 2.Linux 文件特殊权限详解 3.Linux 文件的读写执行权限的说明 4.Linux 架构之简述企业网站 原文地址:https://www.cnblogs.com/ftl1012/p/9280690.html

Linux学习笔记—— 用户管理命令详解

 用户管理命令详解  用户管理: useradd,userdel,usermod,passwd,chsh,chfn,finger,id,chage 添加用户: useradd [options] USERNAME    -u (UID)   手动指定UID -g (GID)  (基本组) -G, ...     (附加组) 可以有多个,彼此之间用,号隔开 -c "COMMENT"         注释信息     -d /path/to/somedirectory  指定家目录 -s