这里记录CentOS 8 使用过程中积累的一些命令,多是因为要解决一些问题而尝试过,并不求完整和系统。
cat /proc/cpuinfo # 查看CPU 的详细信息 (型号, 家族, 缓存大小等) cat /proc/cpuinfo | grep name # 查看CPU 的信息,一般有型号,主频等 cat /proc/cpuinfo | grep "physical id" | sort | uniq # 查看物理CPU的个数,id从0开始,因此最后一行的数字+1就是CPU数目,少的时候直接看行数 cat /proc/cpuinfo | grep "processor" # 查看逻辑CPU的个数,同样id从0开始 sudo dmidecode -t processor | grep Version # CPU的信息 lscpu # 查看cpu的相关信息 free -g # 查看内存,-g是以G为单位 sudo dmidecode -t memory # 查看内存插口及内存条的信息 sudo dmidecode -t memory | grep "Serial Number" # 查看内存条的序列号,没有插内存条的插口则显示为Not Specified df -h # 查看磁盘使用情况 fdisk -l # 查看硬盘和分区的详细信息 fdisk -l | grep Disk # 查看磁盘分区情况 lsblk # 查看硬盘和分区分布
sudo vi /etc/crontab
对配置文件进行编辑,根据文件上边的# Example of job definition:设定各项就可以了。 前边五栏依次用来设定分(0-59)、时(0-23)、日(1-31)、月(1-12)、星期几(0-6或1-7, 星期天=0或7),然后是user,然后是要运行的命令。比如:
0 * * * * wanghong /home/wanghong/noticeEmail.R >> /home/wanghong/noticeEmail.log 2>&1
*表示取值范围内的所有数字;月和星期可以用jan、sun这样三个字母的形式;/表示每,比如日设成1/10 就表示1号运行一次,然后11号、21号、31号分别再运行一次;-表示从某个数字到某个数字;离散的数字可以用都好隔开,比如我这里如果想要从每个小时运行一次变成每半个小时,就可以把第一列设成0,30。可以man -s 5 crontab查看更多。
这里的'' » /home/wanghong/noticeEmail.log 2>&1 ''用于将输出或者报错信息转到noticeEmail.log这个文件。
然后重启一下服务就可以了:
sudo systemctl restart crond
sudo vi /etc/selinux/config将SELINUX=enforcing改成SELINUX=disabled然后重启计算机就可以关掉SELinux。不建议关掉,测试是否SELinux(Security-Enhanced Linux)的问题的时候可以尝试。 用sestatus来查看SELinux的状态。
使用ls -lZ查看当前目录下的所有文件的信息能够看到SELinux Context,后边可以具体指明某个文件夹或文件,比如可以试试
ls -ldZ /var/www/html
SELinux Context为user:role:type:mls_level的形式,可以看到此文件夹SELinux Context的第三项为httpd_sys_content_t,如果我们把网站放在别的地方,比如/home/www,就需要把/home/www这项Context相应地改变:
sudo chcon -R -t httpd_sys_content_t /home/www # 这里只是临时改变了Context,重启之后就变成原来的了 sudo restorecon -R -v /home/www # 恢复成默认的Context sudo semanage fcontext -a -t httpd_sys_content_t /home/www(/.*)/? #设定默认的context,包括内部文件夹及文件 sudo restorecon -R -v /home/www # 使上一步设定的默认值生效
对于一些需要apache具有写的权限的文件夹,需要设成httpd_sys_rw_content_t。
使用seinfo -t | grep httpd查看更多相关的types。同样有-r、-u查看可能的role和user选项。
getsebool -a | grep http
查看和http相关的所有布尔选项,比如httpd_can_sendmail是网站发生邮件所需要设定为on的,另外httpd_can_network_relay可能也是网站正常工作所需要的。
sudo setsebool httpd_can_sendmail on sudo setsebool -P httpd_can_sendmail on sudo setsebool httpd_can_network_relay on sudo setsebool -P httpd_can_network_relay on
比如更改SSH端口之后,除了防火墙需要允许通过以外,SELinux也需要允许。
sudo semanage port -l | grep ssh # 看看ssh开放的端口,默认的只有22 sudo semanage port -l | grep 2222 # 比如想要换成2222端口,可以看看是否已经预留给别的了 sudo semanage port -a -t ssh_port_t -p tcp 2222 #将2222端口添加到ssh,这样才能通过2222端口进行ssh # 没有找到办法把这里的22端口去掉,在SSH配置文件中设置即可
同样,网站或者程序如果需要通过SMTP发送邮件,似乎也需要看看smtp的端口。
sudo semanage port -l | grep smtp
有时候一些运用运行不正常,很难找到具体的原因。这时候要想到看看是不是由于SELinux设置的问题。这时候可以运用两个命令帮助查看:
ausearch -m avc --start recent
这个看看是不是有有denied的情况。这时候看看是哪一步分设置不符合。这里的–start recent参数查看10分钟内的。也可以使用 –start today看今日内的。
grep sealert /var/log/messages* | tail
这样能够查看最新的信息,比如能够看到“SELinux is preventing…”这样的字样,那么就说明问题可能来自于受到了SELinux的阻止。详细信息根据提示查看,比如:
sealert -l 653df078-36c8-4828-adc8-d4b9ebceee5c
【*】更详细的学习可以转至https://wiki.gentoo.org/wiki/SELinux/Tutorials/Where_to_find_SELinux_permission_denial_details
Hostname分为Static、Transient、Pretty三中,Static hostname存于/etc/hostname中。
hostname # 查看当前的Transient hostname sudo hostname new_hostname # 将Transient hostname设置为 new_hostname ,重启失效 hostnamectl status # 可以查看 Static hostname,以及别的信息 hostnamectl # 一样的效果 sudo hostnamectl set-hostname new_hostname #将Static hostname设置为new_hostname,重新ssh之后就能看到变化
看看有没有被攻击,可以使用last | less命令查看最近的登陆情况。sudo less /var/log/secure查看登陆情况。使用如下命令查看登陆失败的情况,如果看到很多次root登陆密码错误(Failed password for …),那么说明可能被攻击了:
sudo grep 'sshd.*Failed password for' /var/log/secure | less
为了增强安全,除了密码设置复杂一点以外,一个是改SSH的端口,另一个是禁止root登陆。
sudo vi /etc/ssh/sshd_config
将PermitRootLogin yes改为PermitRootLogin no,增加一行Port 2222(2222改为自己想要的端口)。选择端口之前可以先看看是不是别的程序的默认的端口,也就是SELinux里是否有了。
sudo semanage port -l | grep 2222
然后要将这个端口添加到SELinux允许的端口里边去:
sudo semanage port -a -t ssh_port_t -p tcp 2222
另外需要使得这个端口能够通过防火墙,sudo vi /etc/firewalld/services/ssh.xml创建一个文件,内容如下:
<?xml version="1.0" encoding="utf-8"?> <service> <short>SSH</short> <description>Add a new port for SSH</description> <port protocol="tcp" port="2222"/> </service>
sudo firewall-cmd –list-services查看一下SSH是否已经被允许通过防火墙了,如果没有看到ssh,则这样添加:firewall-cmd –permanent –zone=public –add-service=ssh
然后sudo systemctl restart firewalld重启防火墙和sudo systemctl restart sshd重启sshd,试试能不能ssh成功。新的端口能够SSH成功之后,sudo vi /etc/ssh/sshd_config,在Port 22前边加#,然后重启防火墙即可。
最后再将22 端口的访问流量转向访问者本地:
sudo firewall-cmd --permanen --zone=public --add-forward-port=port=22:proto=tcp:toport=22:toaddr=127.0.0.1
创建一个叫做username的新用户(将username改为具体的用户名):
sudo adduser username
如果需要设置特定的UID,那么使用–uid参数指明。比如在布置openPBS各个节点的时候,需要同样的用户具有同样的UID。
然后设置密码,修改密码用的也是同样的命令(将username改为具体的用户名):
sudo passwd username
可以强制用户首次登陆的时候修改密码:
sudo chage -d 0 username
如果确实有必要给某个用户管理员权限,可以将用户添加到wheel组,如下命名(将username改为具体的用户名):
sudo usermod -aG wheel username
也可以使用sudo visudo命令,在出现的待编辑的文件最后加上username ALL=(ALL) ALL
将文件/etc/ssh/sshd_config中的PermitRootLogin yes更改为PermitRootLogin no(用sed能够快速实现),然后重启sshd:
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
要强制退出一个已经登录的tty或者pts,首先找到对应的PID,kill掉PID就可以了。
who -la
将<PID>换成具体要kill的:
kill -9 <PID>
本网页已被访问8936次,最后更新时间: 2022/09/02 09:53。