centos 写入权限?centos7 root权限不够

各位老铁们好,相信很多人对centos 写入权限都不是特别的了解,因此呢,今天就来为大家分享下关于centos 写入权限以及centos7 root权限不够的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

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有rw无法写入

centos有rw无法写入是因为,以普通用户的身份打开或创建文件时,需要得到对应目录的写入权限,否则会出现无法写入的情况。

在Linux系统中,文件权限通常是通过chmod命令来设置的。你可以使用以下步骤来检查和修改文件的权限:

1、使用ls-l命令检查文件或目录的权限。例如:ls-l/path/to/file_or_directory

2、查看文件或目录的所有者和所属组。例如:ls-l/path/to/file_or_directory

3、使用chmod命令修改文件或目录的权限。例如:chmod644/path/to/fileorchmod755/path/to/directory

centos怎么上传文件

使用Vsftpd服务传输文件。

你可以配置一个vsftpd服务,具体步骤参考如下:

[root@linuxprobe~]# yum install vsftpd-y

Loaded plugins: langpacks, product-id, subscription-manager

………………省略部分输出信息………………

=

iptables防火墙管理工具中默认禁止了ftp传输协议的端口号,因此咱们在正式配置vsftpd服务程序前还需要清空一下iptables防火墙的默认策略,并将当前已经被清理的防火墙策略状态保存下来:

[root@linuxprobe~]# iptables-F

[root@linuxprobe~]# service iptables save

iptables: Saving firewall rules to/etc/sysconfig/iptables:[ OK ]

vsftpd服务程序的主配置文件(/etc/vsftpd/vsftpd.conf)中参数总共有123行左右,但大多数都是以#(井号)开头的注释信息,咱们可以用grep命令的-v参数来过滤并反选出没有包含#(井号)的参数行,也就是把所有的注释信息都过滤掉,这样再通过输出重定向符写会到原始的主配置文件名称中即可:

[root@linuxprobe~]# mv/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf_bak

[root@linuxprobe~]# grep-v"#"/etc/vsftpd/vsftpd.conf_bak>/etc/vsftpd/vsftpd.conf

[root@linuxprobe~]# cat/etc/vsftpd/vsftpd.conf

anonymous_enable=YES

l

刘遄老师给同学们整理出了vsftpd服务程序的主配置文件中常用的参数及作用介绍,您现在只要简单的浏览一下,接下来的实验中如果不明白再过来查阅就可以。

编辑

参数作用

listen=[YES|NO]是否以独立运行的方式监听服务。

listen_address=IP地址设置要监听的IP地址。

listen_port=21设置FTP服务的监听端口。

download_enable=[YES|NO]是否允许下载文件。

userlist_enable=[YES|NO]

userlist_deny=[YES|NO]是否启用“禁止登陆用户名单”。

max_clients=0最大客户端连接数,0为不限制。

max_per_ip=0同一IP地址最大连接数,0位不限制。

anonymous_enable=[YES|NO]是否允许匿名用户访问。

anon_upload_enable=[YES|NO]是否允许匿名用户上传文件。

anon_umask=022匿名用户上传文件的umask值。

anon_root=/var/ftp匿名用户的FTP根目录。

anon_mkdir_write_enable=[YES|NO]是否允许匿名用户创建目录。

anon_other_write_enable=[YES|NO]是否开放匿名用户其他写入权限。

anon_max_rate=0匿名用户最大传输速率(字节),0为不限制。

local_enable=[YES|NO]是否允许本地用户登陆FTP。

local_umask=022本地用户上传文件的umask值。

local_root=/var/ftp本地用户的FTP根目录。

chroot_local_user=[YES|NO]是否将用户权限禁锢在FTP目录,更加的安全。

local_max_rate=0本地用户最大传输速率(字节),0为不限制。

11.2 Vsftpd服务程序

vsftpd作为更加安全的FTP文件传输协议的服务程序,可以让用户分别通过匿名开放、本地用户和虚拟用户三种身份验证方式来登陆到FTP服务器上面,匿名开放是一种最不安全的验证模式,任何人都可以无需密码验证就登陆到FTP服务端主机,本地用户是通过Linux系统本地的帐号密码信息进行的验证模式,这种模式相比较匿名开放模式来说比较安全,配置起来也十分简单,不过如果被骇客暴力破解出FTP帐号信息,也就可以通过这个口令登陆到咱们的服务器系统中了,从而完全控制整台服务器主机,最后的虚拟用户是相比较最为安全的验证模式,需要为FTP传输服务单独建立用户数据库文件,虚拟出用来口令验证的帐户信息,这些帐号是在服务器系统中不存在的,仅供FTP传输服务做验证使用,因此这样即便骇客破解出了帐号口令密码后也无法登录到咱们的服务器主机上面,有效的降低了破坏范围和影响。

ftp命令是用来在命令行终端中对ftp传输服务进行控制连接的客户端工具,咱们需要先手动的安装一下这个ftp客户端工具,以便于接下来的实验中校验效果:

[root@linuxprobe~]# yum install ftp

Loaded plugins: langpacks, product-id, subscription-manager

………………省略部分输出信息………………

Installing:

ftp x86_64 0.17-66.el7 rhel 61 k

Transaction Summary

================================================================================

Install 1 Package

Total download size: 61 k

Installed size: 96 k

Is this ok [y/d/N]: y

Downloading packages:

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

Installing: ftp-0.17-66.el7.x86_64 1/1

Verifying: ftp-0.17-66.el7.x86_64 1/1

Installed:

ftp.x86_64 0:0.17-66.el7

Complete!

11.2.1匿名访问模式

vsftpd服务程序中匿名开放是一种最不安全的验证模式,任何人都可以无需密码验证就登陆到FTP服务端主机,这种模式一般只用来保存不重要的公开文件,尤其是在生产环境中更要注意不放敏感文件,当然也非常推荐用咱们第八章中学习的防火墙管理工具(例如Tcp_wrappers)将vsftpd服务程序的允许访问主机范围设置为企业内网,这样还算能够保证基本的安全性。

vsftpd服务程序默认已经开启了匿名访问模式,咱们需要做的就是进一步允许匿名用户的上传、下载文件的权限,以及让匿名用户能够创建、删除、更名文件的权限,这些权限对于匿名用户来讲非常的危险,咱们只是为了练习Linux系统中vsftpd服务程序的配置能力,十分不推荐在生产环境中使用,匿名用户的权限参数及介绍:

编辑

参数作用

anonymous_enable=YES允许匿名访问模式。

anon_umask=022匿名用户上传文件的umask值。

anon_upload_enable=YES允许匿名用户上传文件

anon_mkdir_write_enable=YES允许匿名用户创建目录

anon_other_write_enable=YES允许匿名用户修改目录名或删除目录

[root@linuxprobe~]# vim/etc/vsftpd/vsftpd.conf

anonymous_enable=YES

anon_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

确认参数填写正确后保存并退出vsftpd服务程序的主配置文件,还需要重启vsftpd服务程序来让新的配置服务参数生效,并且同学们在生产环境中或者红帽RHCSA、RHCE、RHCA认证考试中也请记得一定要把配置过的服务程序加入到开机启动项中,以保证下次服务器重启后依然能够为用户正常提供ftp文件传输服务:

[root@linuxprobe~]# systemctl restart vsftpd

[root@linuxprobe~]# systemctl enable vsftpd

ln-s'/usr/lib/systemd/system/vsftpd.service''/etc/systemd/system/multi-user.target.wants/vsftpd.service

这样咱们就可以在客户端上面使用ftp命令连接到远程的FTP服务器上面了,FTP服务的匿名开放模式的帐号统一为anonymous,密码为空。匿名模式登陆到FTP服务器后默认所在位置为/var/ftp目录,咱们可以切换至里面的pub目录中,然后尝试创建一个新的目录文件来检验是否已经有了写入权限:

[root@linuxprobe~]# ftp 192.168.10.10

Connected to 192.168.10.10(192.168.10.10).

220(vsFTPd 3.0.2)

Name(192.168.10.10:root): anonymous

331 Please specify the password.

Password:此处敲击回车即可

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> cd pub

250 Directory successfully changed.

ftp> mkdir files

550 Permission denied.

刚刚咱们已经把iptables防火墙策略清空,而且也在vsftpd服务程序的主配置文件中添加了允许匿名用户创建目录和写入文件的权限,那么为什么还会被拒绝呢?建议同学们先不要往下面看,思考后用自己的方法尝试解决下这个问题,长期这样您的Linux系统排错能力就一定会练出来的。

回想起前面操作的细节,咱们FTP服务的匿名开放模式是默认登陆到了/var/ftp目录中,查看下这个目录的权限后才发现原来只有root管理员用户才有写入权限的,怪不得会提示写入出错呢,咱们只需要把目录的所有者身份改成系统帐户ftp即可,这样就应该可以了吧~

[root@linuxprobe~]# ls-ld/var/ftp/pub

drwxr-xr-x. 3 root root 16 Jul 13 14:38/var/ftp/pub

[root@linuxprobe~]# chown-Rf ftp/var/ftp/pub

[root@linuxprobe~]# ls-ld/var/ftp/pub

drwxr-xr-x. 3 ftp root 16 Jul 13 14:38/var/ftp/pub

[root@linuxprobe~]# ftp 192.168.10.10

Connected to 192.168.10.10(192.168.10.10).

220(vsFTPd 3.0.2)

Name(192.168.10.10:root): anonymous

331 Please specify the password.

Password:此处敲击回车即可

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> cd pub

250 Directory successfully changed.

ftp> mkdir files

550 Create directory operation failed.

又报错了!!此时再次使用ftp命令登入到FTP服务器主机后依然会提示写入操作失败,但细心的同学一定发现报错信息已经产生了变化,在刚刚没有写入权限的时候提示说权限拒绝(Permission denied.)所以咱们怀疑是权限的问题,但现在是提示创建目录的操作失败(Create directory operation failed.)那么咱们同学应该也能马上意识到是SELinux服务在限制这个操作了吧,查看下所有与ftp相关的SELinux域策略有那些吧:

[root@linuxprobe~]# getsebool-a| grep ftp

ftp_home_dir--> off

ftpd_anon_write--> off

ftpd_connect_all_unreserved--> off

ftpd_connect_db--> off

ftpd_full_access--> off

ftpd_use_cifs--> off

ftpd_use_fusefs--> off

ftpd_use_nfs--> off

ftpd_use_passive_mode--> off

httpd_can_connect_ftp--> off

httpd_enable_ftp_server--> off

sftpd_anon_write--> off

sftpd_enable_homedirs--> off

sftpd_full_access--> off

sftpd_write_ssh_home--> off

tftp_anon_write--> off

tftp_home_dir--> off

根据策略的名称和经验可以猜测出是哪一条规则策略,咱们在设置的时候请记得使用-P参数来让配置过的策略永久生效,保证在服务器重启后依然能够顺利写入文件,咱们可以分别尝试下创建目录文件、对文件进行改名以及删除目录文件等等操作。最后,恭喜同学们完成了这个实验课程,建议您在进行一次实验课程前还原虚拟机到最初始的状态,以免多个配置参数之间产生冲突。

[root@linuxprobe~]# setsebool-P ftpd_full_access=on

[root@linuxprobe~]# ftp 192.168.10.10

Connected to 192.168.10.10(192.168.10.10).

220(vsFTPd 3.0.2)

Name(192.168.10.10:root): anonymous

331 Please specify the password.

Password:此处敲击回车即可

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> cd pub

250 Directory successfully changed.

ftp> mkdir files

257"/pub/files" created

ftp> rename files database

350 Ready for RNTO.

250 Rename successful.

ftp> rmdir database

250 Remove directory operation successful.

ftp> exit

221 Goodbye.

11.2.2本地用户模式

本地用户模式是通过Linux系统本地的帐号密码信息进行的验证方式,这种模式相比较匿名开放模式来说比较安全,不过如果被骇客暴力破解出FTP帐号信息,也就可以通过这个口令登陆到咱们的服务器系统中了,从而完全控制整台服务器主机。本地用户模式配置起来十分简单,而且既然本地用户模式确实要比匿名开放模式更加的安全,因此推荐既然开启了本地用户模式,就把匿名开放模式给关闭了吧~咱们对本地用户模式需要使用的权限参数及介绍如下表:

编辑

参数作用

anonymous_enable=NO禁止匿名访问模式。

local_enable=YES允许本地用户模式。

write_enable=YES设置可写入权限。

local_umask=022本地用户模式创建文件的umask值。

userlist_deny=YES参数值为YES即禁止名单中的用户,参数值为NO则代表仅允许名单中的用户。

userlist_enable=YES允许“禁止登陆名单”,名单文件为ftpusers与user_list。

[root@linuxprobe~]# vim/etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

当咱们确认参数信息已经填写正确就可以保存退出了,要想让新的配置参数生效还要记得重启一下vsftpd服务程序,并且在刚刚实验后还原了虚拟机的同学还请记得再把配置的服务加入到开机启动项中,让咱们的vsftpd服务程序在重启后依然能够正常使用。

[root@linuxprobe~]# systemctl restart vsftpd

[root@linuxprobe~]# systemctl enable vsftpd

ln-s'/usr/lib/systemd/system/vsftpd.service''/etc/systemd/system/multi-user.target.wants/vsftpd.service

按道理来说咱们现在就已经可以使用本地用户登陆到FTP服务器中了,但使用root用户登陆后会提示如下的错误信息:

[root@linuxprobe~]# ftp 192.168.10.10

Connected to 192.168.10.10(192.168.10.10).

220(vsFTPd 3.0.2)

Name(192.168.10.10:root): root

530 Permission denied.

Login failed.

ftp>

在咱们输入root管理员用户的密码前就已经提示被拒绝了,看来有什么东西再禁止着用户登陆,这是因为咱们vsftpd服务程序目录中默认存在着两个文件(ftpusers或user_list),这两个文件叫做禁止用户名单,不知道同学们有没有看过一个叫做“死亡笔记”的日本电影,里面就提到有一个黑色封皮的小本本,任何人的名字写进去都会死亡,其实咱们在配置的这个vsftpd服务程序的禁止文件也有类似的功能,只要里面写有某个用户的名字,那么就不再允许这个用户登陆到咱们的FTP服务器上面。

具体步骤参考文档:,可以部署一个vsftpd服务

阅读剩余
THE END