# mv /var/run/zypp.pid /var/run/zypp.sav
# /usr/bin/zypper remove httpd
# mv /var/run/zypp.sav /var/run/zypp.pid
(补充:这里以删除 httpd 软件为例)
# mv /var/run/zypp.pid /var/run/zypp.sav
# /usr/bin/zypper remove httpd
# mv /var/run/zypp.sav /var/run/zypp.pid
(补充:这里以删除 httpd 软件为例)
(步骤略)
# sudo su - postgres -c "psql -d foreman -c 'select label,count(label),state,result from foreman_tasks_tasks where state <> '\''stopped'\'' group by label,state,result ORDER BY label;'"
label | count | state | result
------------------------------------------------------+-------+-----------+---------
Actions::Katello::ContentView::Publish | 1 | paused | error
......
(补充:从这里可以看出运行结果是错误的任务标签是 Actions::Katello::ContentView::Publish)
# foreman-rake foreman_tasks:cleanup TASK_SEARCH='label = Actions::Katello::ContentView::Publish' STATES='paused' VERBOSE=true
(补充:这里以强制停止标签为 Actions::Katello::ContentView::Publish 的任务为例)
1) no_root_squash 当使用 NFS 共享目录的客户端是以客户端的 root 用户的身份使用,那么对于这个共享目录而言,这个客户端具有 root 权限
2) root_squash 当使用 NFS 共享目录的客户端是以客户端的 root 用户的身份使用,那么对于这个共享目录而言,这个客户端依旧没有 root 权限
3) 此为默认值,anon=0 禁止使用 NFS 共享目录的客户端以随机身份使用
4) anon=1 允许使用 NFS 共享目录的客户端以随机身份使用
5) soft 使用 NFS 共享目录的客户端以软挂载的方式进行挂载,若客户端的请求得不到回应,则会重新发出请求并传回错误信息
6) 此为默认值,hard 使用 NFS 共享目录的客户端以软挂载的方式进行挂载,若客户端的请求得不到回应,则会一直发出请求直到得到 NFS 服务器的回应为止
7) timeo=120 使用 NFS 共享目录的客户端在连接不通后,会以 1/7 秒的时间尝试重新连接,默认会尝试重新连接 7 次,timeo=120 表示会重新尝试连接 120 次
8) rw 设置使用 NFS 共享目录的客户端拥有读和写的权限
9) nolock 取消文件锁
# cat /etc/fstab
192.168.0.1:/test /test nfs timeo=120,rw,soft,nolock 0 0
(
补充:这里以
1) 挂载 192.168.0.1:/test 的目录到本地的 /test 目录
2) 以 nfs 格式进行挂载
3) 客户端在连接不通后会重新尝试连接 120 次
4) 客户端拥有读和写的权限
5) 以软挂载的方式进行挂载
6) 取消文件锁
7) 不进行数据备份
8) 不进行数据校验
为例
)
# hammer content-view list
----------------|---------------------------|--------------------------------------|-----------|---------------------|---------------------------------------------------------------------------------
CONTENT VIEW ID | NAME | LABEL | COMPOSITE | LAST PUBLISHED | REPOSITORY IDS
----------------|---------------------------|--------------------------------------|-----------|---------------------|---------------------------------------------------------------------------------
10 | test_CV | test_CV | false | 2022/06/23 20:20:20 | 61525, 16812, 61524, 16814, 16813, 16811, 16816, 16817, 6578, 231, 8, 9, 131,...
# hammer content-view info --id 10
(补充:这里以显示 ID 为 10 的 Content View 的信息为例)
# cp /etc/ssh/sshd_config /etc/ssh/sshdsftp_config
# cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sshdsftp.service
# vim /etc/systemd/system/sshdsftp.service
将以下内容:
......
Description=OpenSSH server daemon
......
ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY
......
修改为:
......
Description=OpenSSH SFTP server daemon
......
ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshdsftp_config $OPTIONS $CRYPTO_POLICY
......
# systemctl daemon-reload
# vim /etc/ssh/sshdsftp_config
将以下内容:
......
#Port 22
......
修改为:
......
Port 2222
......
# vim /etc/ssh/sshd_config
如果是 CentOS Linux & RHEL,将以下内容:
......
Subsystem sftp /usr/libexec/openssh/sftp-server
......
修改为:
......
#Subsystem sftp /usr/libexec/openssh/sftp-server
......
如果是 openSUSE & SLES, 将以下内容:
......
Subsystem sftp /usr/lib/ssh/sftp-server
......
修改为:
......
# Subsystem sftp /usr/lib/ssh/sftp-server
......
# firewall-cmd --add-port=2222/tcp --perm
(补充:这里以在 firewalld 防火墙开通 2222 端口为例)
# firewall-cmd --reload
# semanage port -a -t ssh_port_t -p tcp 2222
(补充:这里以给 2222 端口打上 SSH 的标签为例)
(注意:此步骤只有在 SELinux 开启,且处于 enforcing 状态时才需要设置)
# systemctl enable --now sshdsftp
# systemctl restart sshd
# vim /etc/ssh/sshdsftp_config
如果是 CentOS Linux & RHEL,将以下内容:
......
Subsystem sftp /usr/libexec/openssh/sftp-server
......
修改为:
......
#Subsystem sftp /usr/libexec/openssh/sftp-server
......
如果是 openSUSE & SLES, 将以下内容:
......
Subsystem sftp /usr/lib/ssh/sftp-server
......
修改为:
......
# Subsystem sftp /usr/lib/ssh/sftp-server
......
并添加以下内容:
......
Subsystem sftp internal-sftp
Match LocalPort 2222
ChrootDirectory /%u
ForceCommand internal-sftp -m 770
AllowTcpForwarding no
X11Forwarding no
(
补充:
1) 这里以将:
SFTP 的端口设置为 2222
SFTP 用户可以进入的目录只能为 /<user>
SFTP 上传的文件默认权限是 770 (-m 770 参数也可以使用 -u 770 替代,但是 -u 参数有时候会不起作用)
为例
2) 其它配置方案可以参考
)
# systemctl restart sshdsftp
# useradd sftpuser
(补充:这里以创建名为 sftpuser 的用户为例)
# usermod -s /bin/false sftpuser
(补充:这里以将用户 sftpuser 的解释器修改成 /bin/false 为例)
或者:
# usermod -s /sbin/nologin sftpuser
(补充:这里以将用户 sftpuser 的解释器修改成 /sbin/nologin 为例)
# passwd sftpuser
(补充:这里以给 sftpuser 用户设置密码为例)
# mkdir /sftpuser
(补充:因为在本文步骤 2.1 中,设置的 SFTP 用户的目录是 /<user>,且在本文步骤 3.1 中创建的用户名是 sftpuser,所以这里的 SFTP 目录是 /sftpuser)
# chown root: /sftpuser
(注意:SFTP 目录以及所有 SFTP 目录的父目录的所属主必须是 root,权限最高只能是 755 或者 750,否则就算此目录的所属主是此 SFTP 用户,此用户在登录时也会报错)
# chmod 755 /sftpuser
(注意:SFTP 目录以及所有 SFTP 目录的父目录的所属主必须是 root,权限最高只能是 755 或者 750,否则就算此目录的所属主是此 SFTP 用户,此用户在登录时也会报错)
# useradd nosftp
(补充:这里以创建测试用户 nosftp 为例)
# passwd nosftp
# ssh sftpuser@127.0.0.1
(补充:这里以测试用户是 sftp 为例)
# sftp -P 2222 sftpuser@127.0.0.1
Connected to sftpuser@127.0.0.1.
sftp>
(补充:这里以 SFTP 端口是 2222,SFTP 目录时 /sftpuser ,测试用户是 sftpuser 为例)
sftp> cd /
sftp> ls
write
sftp>
(补充:此时发现目前 SFTP 的根 “/” 并不是 Linux 系统的根 “/” 目录)
# ssh nosftp@127.0.0.1
(补充:这里以 SSH 端口是 22,测试用户是 nosftp 为例)
# ssh -p 2222 sftpuser@127.0.0.1
sftpuser@192.168.8.58's password:
This service allows sftp connections only.
Connection to 10.0.0.3 closed.
#
(补充:这里以 SFTP 端口是 2222,SFTP 目录是 /sftpuser,测试用户是 sftpuser 为例)
# ssh -p 2222 nosftp@127.0.0.1
client_loop: send disconnect: Broken pipe
#
(补充:这里以 SFTP 端口是 2222,SFTP 目录是 /sftp,测试用户是 nosftp 为例)
# sftp sftpuser@127.0.0.1
subsystem request failed on channel 0
Connection closed
#
或者:
# sftp sftpuser@127.0.0.1
sftpuser@127.0.0.1's password:
Received message too long 1416133333
Ensure the remote shell produces no output for non-interactive sessions.
#
(补充:这里以 SFTP 端口是 22,测试用户是 sftpuser 为例)
# sftp -P 2222 nosftp@127.0.0.1
client_loop: send disconnect: Broken pipe
Connection closed
#
(补充:这里以 SFTP 端口是 2222,SFTP 目录是 /sftp,测试用户是 nosftp 为例)
# sftp -P 2222 sftpuser@127.0.0.1
Connected to sftpuser@127.0.0.1.
sftp>
(补充:这里以 SFTP 端口是 2222,SFTP 目录是 /sftpuser ,测试用户是 sftpuser 为例)
$ sftp -P 2222 sftpuser@127.0.0.1
sftpuser@127.0.0.1's password:
Permission denied, please try again.
sftpuser@127.0.0.1's password:
Permission denied, please try again.
sftpuser@127.0.0.1's password:
sftpuser@127.0.0.1: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Connection closed
(补充:这里以测试用户 sftpuser 为例)
# sftp -P 2222 sftpuser@127.0.0.1
sftpuser@127.0.0.1 password:
Connection closed.
Connection closed
(补充:这里以测试用户 sftpuser 为例)