Linux启动ftp服务器530 Permission denied解决方法

Linux启动ftp服务器530 Permission denied解决方法,第1张

新在虚拟机下安装了linux。现在我想启动linux自带的ftp服务器:#service  vsftpd  start 。如果想linux启动是自动启动ftp服务器:#chkconfig  vsftpd  on  。

运行putty,以root身份进入,出现了报错  530 Permission denied  ,感觉很奇怪,因以普通用户是可以进入的。

原因是我们 /etc/vsftpd/ftpusers  和  /etc/vsftpd/user_list  禁掉了root这个用户。这时我们需要修改这两个文件。

(1)/etc/vsftpduser_list的默认文件(则是表示具体用户)

# vsftpd userlist

# If userlist_deny=NO, only allow users in this file

# If userlist_deny=YES (default), never allow users in this file, and

# do not even prompt for a password

# Note that the default vsftpd pam config also checks /etc/vsftpdftpusers

# for users that are denied

root

bin

daemon

adm

lp

sync

shutdown

halt

mail

news

uucp

operator

games

nobody

这时我们要在 root 前加上 # 。

(2)/etc/vsftpdftpusers  的默认文件(所有可以登录该FTP的用户属性)

# Users that are not allowed to login via ftp

root

bin

daemon

adm

lp

sync

shutdown

halt

mail

news

uucp

operator

games

nobody

这时我们要在 root 前加上 # 

拟机装好RedHat后,准备使用filezilla连接,输入IP地址,root用户,密码,快速连接,报错:

530 Permission denied。

故障排除:

1首先检查系统是否开启了vsftp服务,如果没有开启,先开启该服务。

方法1setup--系统服务--自启动服务

方法2界面设置,service vsftpd restart

2查看配置

vsftpd的配置,配置文件中限定了vsftpd用户连接控制配置。

vsftpdftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。

vsftpduser_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd conf配置文件里启用userlist_enable=NO选项时才允许访问。

vsftpdconf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。

3配置修改完成后,执行service vsftpd restart重启vsftpd服务。

远程linux服务器开启xserver服务的 *** 作步骤如下:

首先我们在自己的电脑中找到已安装的xshell并打开。

打开xshell后找到左上角第一个“文件”点击,d出来一个下拉框,选择“新建”点击(或者直接按下快捷键“Alt+n”)。

点击“新建”之后就会出现下面这样一个界面,“名称”根据自己的需求填写,“协议”就是默认的SSH,“主机”是这一步最关键的,一定要填写正确,否则无法登录,端口也是默认的22,其他不用填,填写完成之后先不要点确定,看下一步。

找到坐便菜单栏中的“用户身份验证”点击,点击之后会让你填写用户名和密码,其中“方法”默认“password”,“用户名”填写你的FTP用户名,“密码”填写你的FTP密码,填写完成点击确定。

那这一步我们来登录我们刚才保存的账号,依次找到左上角“文件”-->“打开”,d出如下界面,左下角有一个选项“启动时显示此对话框”,这个选项的意思是:每次打开xshell都直接跳出这个对话框,根据需求勾选,然后找到你想登录的服务器,点击“连接”即可。

你先进入敲setup 进入后选择system service (通过tab键切换)
进入后看看有没有tftp选项 []内如果是空的表示安装了 但是没有启动, 如果是[]表示已经正常启动了
如果是空的话 vi /etc/xinetdd/tftp 进入配置文件, 看看disable那个选项是不是yes了,把它改成no,就好了,欢迎提问

1、ps
aux
或netstat
-tlunp
ps是进程查看命令,netstat是端口查看命令,在Linux系统中,服务一定是有进程的,所以使用ps命令可以查看服务运行情况,另外,Linux服务多数是网络服务,所以通过netstat命令也可以查看服务运行状态。
2、service
服务名
status
比如查看>

可以按照如下方式进行设置:

1、创建sftp组,groupadd sftp,创建完成之后使用cat /etc/group命令组的信息。

2、创建一个sftp用户mysftp并加入到创建的sftp组中,同时修改mysftp用户的密码,useradd -g sftp -s /bin/false mysftp,passwd mysftp 。

3、新建/data/sftp/mysftp目录,并将它指定为mysftp组用户的home目录,mkdir -p /data/sftp/mysftp,usermod -d /data/sftp/mysftp mysftp。

4、编辑配置文件/etc/ssh/sshd_config,vi /etc/ssh/sshd_config,将如下这行用#符号注释掉。

5、设置Chroot目录权限,chown root:sftp /data/sftp/mysftp,chmod 755 /data/sftp/mys。

6、新建一个目录供stp用户mysftp上传文件,这个目录所有者为mysftp所有组为sftp,所有者有写入权限所有组无写入权限,mkdir /data/sftp/mysftp/upload,chown mysftp:sftp /data/sftp/mysftp/upload,chmod 755 /data/sftp/mysftp/upload。 

7、关闭selinux并重启sshd服务,然后测试。

8、在其他服务器上进行验证,sftp 用户名@ip地址。

1、sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。

2、其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复 *** 作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。

Linux的发行版本不同,重启服务的方式也是不一样的。

centos 6版本:

service 服务名 restart

例如重启vsftpd:

[root@linuxprobe ~]# service vsftpd restart

注意:service 服务器 start/stop/status/restart/reload

这里需要确定下restart 和reload 的区别,restart是重启,也就是kill掉进程,然后在启动进程,而reload是重新加载配置。

centos7x版本:

systemctl restart 服务名

例如重启vsftpd:

[root@linuxprobe ~]# systemctl restart vsftpd

另外,如果服务是编译安装的话,重启的命令就是要看安装包的说明了,例如nginx:

[root@linuxprobe ~]# cd /xxx/xx/xx/sbin

[root@linuxprobe ~]# /nginx -s reload

当然也可以手动些shell重启脚本,一般情况下都是如果重启服务,又没有脚本,比如tomcat,我们一般都是先杀进程 ,然后启服务:

[root@linuxprobe ~]#ps -ef |grep tomcat |grep -v tomcat |awk '{print$2}' |xargs kill -9 && sh /xx/xx/xx/startshsh

更多Linux的知识建议更加系统 的去学习去联系,可以参考《Linux就该这样学》,加油吧!!!

有些时候,我们需要在终端启动一个程序,并使之运行——但是如果关闭终端,那么这个程序也就随着关闭了。那么有没有什么方法在关闭终端后,让已经从这个终端启动的程序继续运行呢?有以下方法

1让linux忽略终端的hung up 信号,不关闭进程;

2让此进程变为终端的非子进程。

方法一:

在终端输入命令:

# /pso > psofile 2>&1 &

解释:将pso直接放在后台运行,并把终端输出存放在当前目录下的psofile文件中。

当客户端关机后重新登陆服务器后,直接查看psofile文件就可看执行结果(命

令:#cat psofile )。

或者 在终端输入命令:

# nohup /pso > psofile 2>&1 &

解释:nohup就是不挂起的意思,将pso直接放在后台运行,并把终端输出存放在当前

目录下的psofile文件中。当客户端关机后重新登陆服务器后,直接查看psofile

文件就可看执行结果(命令:#cat psofile )。

方法二:

实现方案就是nohup命令。

例如要启动jboss,可以nohup /runsh &。这样就可以了,结尾的“&”符号表示后台启动jboss,从而不影响继续运行其他命令。

但这样有一个问题,nohup命令虽然可以让linux“放过”这个进程,但是nohup会同时把进程的控制台输出重定向到nohuptxt下(默认是这个文件),当然可以重定向为其他的文件,但是输出总会有的。

如果jboss运行很长时间,而且如果有很多控制台输出的话,nohuptxt文件就会变的很大很大。

通常项目中的日志都会输出到特定的日志文件或者输出到 数据库 中,也就是说控制台的输出对于程序的意义不大,那么可不可以抛弃掉这些输出呢?答案是肯定的。

这里讲解一下linux的重定向(注意,是linux的重定向,不是针对nohup)。

0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出。

在一般使用时,默认的是标准输出,既1当我们需要特殊用途时,可以使用其他标号。例如,将某个程序的错误信息输出到log文件中:/program 2>log。这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。

另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。

Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。

结合nohup,我们可以这样 nohup /runsh >/dev/null &

这是最简单的一种方式,既保证了程序能够一直后台执行,又能保证不会产生太大的nohuptxt文件。

方法三:

利用的linux的一个机制,让程序在subshell中执行,方法很简单,将命令用括号() 括起来即可。

ps -ef | grep test

可以看到runsh的父进程为1,不是当前终端了,这样就能忽略hung up信号。

当然linux还可以动态的让程序后台运行或不被hung up 信号关闭,例如disown命令,setid命令等。


方法四:

如果是使用Ubuntu的话,你可以利用CTRL+ALT+T组合键打开终端。当然你也可以使用超级键(Windows键)打开Dash,搜索“TERM”,然后点击“Term”图标来打开终端窗口。
对于其他的桌面环境来说,例如XFCE、KDE、LXDE、Cinnamon以及MATE,你可以在菜单中找到终端。有些环境会在停靠栏或者面板上面包含终端图标。
通常情况下,你可以在终端里面直接输入应用程序名来启动一个应用程序。比如说,你可以通过输入“firefox”来启动Firefox。
在终端启动应用程序的好处是,你可以包含一些额外的参数。
例如,你可以通过下列命令来打开一个Firefox浏览窗口,然后利用默认的搜索引擎搜索相关信息:
firefox -search "linuxcn"

你可能会注意到,如果你启动Firefox,程序打开以后,回到了终端窗口控制,这就意味着你可以继续在终端进行工作。
通常情况下,如果你在终端启动了应用程序,控制会切换到新启动的应用程序,只有程序被关闭以后才会重新切换到终端控制。这是因为你在前台启动了这个程序。
如果要在Linux终端打开应用程序并且返回终端控制,那么你需要将应用程序启动为后台进程。
和下面所列的命令一样,我们可以通过增加一个(&)符号,将应用程序在后台启动。
libreoffice &

译者注:如果需要加参数的话,记得把&符号放在最后。
译者注:一般情况下,关闭终端时,在这个终端启动的后台程序也会被终止,要使终端关闭以后,后台程序依然保持执行可以使用下列命令
nohup command [arg] &
如果应用程序目录没有安装在PATH变量包含的目录里面的话,我们就没有办法直接通过应用程序名来启动程序,必须输入应用程序的整个路径来启动它。
/path/to/yourprogram &

如果你不确定程序输入哪个Linux目录结构的话,可以使用find或者location命令来定位它。
可以输入下列符号来找到一个文件:
find /path/to/start/from -name programname

例如,你可以输入下列命令来找到Firefox:
find / -name firefox

命令运行的结果会嗖的一下输出一大堆,别担心,你也可以通过less或者more来进行分页查看。
find / -name firefox | more find / -name firefox | less

当find命令查找到没有权限访问的文件夹时,会报出一条拒绝访问错误,
你可以通过sudo命令来提示权限。当然,如果你没有安装sudo的话,就只能切换到一个拥有权限的用户了。
sudo find / -name firefox | more

如果你知道你要查找的文件在你的当前目录结构中,那么你可以使用点来代替斜杠:
sudo find -name firefox | more

你可能需要sudo来提升权限,也可能根本就不需要,如果这个文件在你的主目录里面,那么就不需要使用sudo。
有些应用程序则必须要提升权限才能运行,否则你就会得到一大堆拒绝访问错误,除非你使用一个具有权限的用户或者使用sudo提升权限。
这里有个小窍门。如果你运行了一个程序,但是它需要提升权限来 *** 作,输入下面命令试试:
sudo !!

方法五:
在Unix/Linux下如果想让程序独立终端运行,一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)
打开gnome-terminal,执行如下命令:
delectate@delectate:~$ totem &[1] 8510delectate@delectate:~$ 有几点需要注意:
已经启动的程序依然attach于当前pts,只有当前终端模拟器关闭(使用exit命令退出),进程自动被tty继承。delectate@delectate:~$ ps -e | grep totem //程序已被以totem & 形式启动,当前附在pts0上8819 pts/0 00:00:00 totemdelectate@delectate:~$ ps -e | grep totem //pts0的模拟终端被exit命令关闭,totem自动附在tty8819 00:00:00 totemdelectate@delectate:~$
具有debug输出的进程,需要按enter键进行中断当前debug输出。但是如果程序持续进行printf,你将无法输入任何命令。delectate@delectate:~$ vlc &[1] 8850delectate@delectate:~$ VLC media player 106 Goldeneye[0x8b998b0] main libvlc: Running vlc with the default interface Use ‘cvlc’ to use vlc without interface //enter presseddelectate@delectate:~$ //show a clean terminal now (:8850): CRITICAL : giop_thread_request_push: assertion `tdata != NULL’ failed //仍然在输出数据…… //关闭程序[1]+ Done vlcdelectate@delectate:~$
你无法记录程序的debug输出结果。
只有当虚拟终端是 $ 或者 # 时候,才可以关闭此终端,否则可能导致已经启动的进程被关闭(按enter——如果程序持续输出信息而没有出现 $ 或 #)
使用nohup命令:
nohup描述:Run COMMAND, ignoring hangup signals(忽略任何中断/挂起信号,使命令继续执行)
但是当你尝试使用命令:
1nohup command
时候却会遇到不大不小的麻烦……
delectate@delectate:~$ nohup vlcnohup: ignoring input and appending output to `nohupout’
是的,虽然它自动把debug信息记录到nohupout文件,但是你却无法使用这个终端进行任何 *** 作。
所以你需要和第一个方法混用,即
nohupcommand {option}&
混用后,它会自动把你执行的命令输出结果记录到权限为-rw——-,名为nohupout的文件中。
但是你仍然需要
delectate@delectate:~$ nohup vlc &[1] 9045delectate@delectate:~$ nohup: ignoring input and appending output to `nohupout’ //在这里按一下回车或以ctrl+c以 //show a clean terminal delectate@delectate:~$
与使用 “&” 性质相同,当前启动程序的终端如果没有被关闭,已经启动的程序附在pst上;如果终端被关闭,则自动附在tty。
如果当前目录的 nohupout 文件不可写,输出重定向到 $HOME/nohupout。默认状态下,nohup默认输出到nohupout文件,你也可以利用重定向来指定输出文件:
nohupcommand {option} > myoutfile 2>&1 &
只有当虚拟终端是 $ 或者 # 时候,才可以关闭此终端,否则可能导致已经启动的进程被关闭(按enter——如果程序持续输出信息而没有出现 $ 或 #)
其他相关命令:
jobs:查看当前有多少在后台运行的命令
fg:将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
bg:将一个在后台暂停的命令,变成继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
杀死进程
杀死已经启动的程序和普通方式一样:
pkill -9 name
killall name
kill pid

命令应用:
linux服务器挂机下载;启动相关服务;linux服务器启动进程(尤其是ssh登录)
我就曾经用 1nohup aria2c -i downloadlist -m 0 -j 1 &

1、ps aux 或netstat -tlunp ps是进程查看命令

netstat是端口查看命令

在Linux系统中,服务一定是有进程的,所以使用ps命令可以查看服务运行情况。

另外,Linux服务多数是网络服务,所以通过netstat命令也可以查看服务运行状态。

2、service 服务名 status

比如查看>

3、/sbin/service --status-all |grep "服务名"

比如查看>

执行 /sbin/service --status-all |grep ">

4、chkconfig --list

比如查看>

执行 chkconfig --list |grep ">

1

友好的显示所有服务的运行状态:

service --status-all

chkconfig --list

2

查看单个服务的运行状态

service sshd status

3

查看启动状态,是否开机自动启动

chkconfig --list servicename

   开机

1:单用户模式

2:多用户模式,不具有网络档案系统(NFS)功能

3:多用户模式,具有网络档案系统(NFS)功能

4:某些发行版linux用这个等级进入 X windows 系统

5:同4

6:重新启动

注意:切记无用1和6

关闭或开启服务状态:

chkconfig --level 345 nscd off/on

4

增加服务:

chkconfig --add xxx

( 注意:服务脚本必须存放在 /etc/initd/目录下)

如mysqld

[root@>

chkconfig mysqld on (各等级为ON,各等级为2345等级)

这样就会以系统服务的形式启动了

删除服务:

chkconfig --del XXX

runlevel 查看当前等级。

注意:运行级别就是 *** 作系统正在运行的功能级别。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/12710108.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-27
下一篇2025-08-27

发表评论

登录后才能评论

评论列表(0条)

    保存