CentOS 7 如何改变默认运行级别

无论怎样,RHEL 7 系统选择 systemd 初始化进程服务已经是一个既定事实,因此也没有 了“运行级别”这个概念,Linux 系统在启动时要进行大量的初始化工作,比如挂载文件系统 和交换分区、启动各类进程服务等,这些都可以看作是一个一个的单元(Unit),systemd 用目 标(target)代替了 System V init 中运行级别的概念。

Continue reading

Linux 如何利用 inode 删除特殊符号文件

今天在安装应用的过程中,发现主机某账户下出现了很多不知名的文件:

uatusr01@tst10:/uniiof/uatusers/uatusr01>ls -lGS
总用量 6966008
……
-rw-rw-r--   1 uatusr01          0 6月  25 11:40 ?
-rw-rw-r--   1 uatusr01          0 6月  25 11:39 ?
-rw-rw-r--   1 uatusr01          0 6月  25 11:39 ??
-rw-rw-r--   1 uatusr01          0 5月  24 16:26 ??????
-rw-rw-r--   1 uatusr01          0 5月  24 16:26 ??ٮ?e?
-rw-rw-r--   1 uatusr01          0 5月  24 16:26 Q??1$?0?^1?
uatusr01@tst10:/uniiof/uatusers/uatusr01>

且不说它们是怎么来的(绝大多数是误操作引起的),怎么删除倒是个大问题。

Continue reading

‘sudo: sorry, you must have a tty to run sudo’ 解决办法

在远程使用某用户执行 sudo 命令的时候,经常会遇到没有 tty 的问题,比如:

[gitlab-runner@tst10 ~]$ ssh asbuser@127.0.0.1 "sudo ls"
sudo: sorry, you must have a tty to run sudo
[gitlab-runner@tst10 ~]$ 

碰到此问题的原因是 sudo 配置文件中,禁止了远程 sudo 的执行,因为有泄漏密码的风险,官方解释如下:

Disable "ssh hostname sudo ", because it will show the password in clear.

但是对于已经做了互信的两台主机来说,是没有泄漏密码风险的。所以,如何才能在远程主机上执行 sudo 呢?

Continue reading

如何通过 PID 查看进程完整信息

今天收到一个 443 端口的漏洞报告,遂开始查找进程的详细信息:

[common@WegGsZkp03 ~]$ sudo netstat -anp|grep 443
tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   LISTEN      15605/nginx
[common@WegGsZkp03 ~]$ ps -ef|grep 15605
nobody    15605  97161  0  2016 ?        00:00:05 nginx: worker process
common   190450 186174  0 17:14 pts/0    00:00:00 grep 15605
[common@WegGsZkp03 ~]$ 

nobody 是什么鬼,这么简单的进程信息又是什么鬼,怎么才能找到这个 nginx 进程的执行路径呢?

Continue reading

使用 chage 更新 linux 用户密码过期时间

chage,其实很好记,就是 change age。主要用于更新和 linux 用户相关的各种过期信息,比如 账号过期时间密码过期时间等,具体参数如下:

[root@VM_61_237_centos ~]# chage --help
Usage: chage [options] LOGIN

Options:
  -d, --lastday LAST_DAY        set date of last password change to LAST_DAY
  -E, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -h, --help                    display this help message and exit
  -I, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -l, --list                    show account aging information
  -m, --mindays MIN_DAYS        set minimum number of days before password
                                change to MIN_DAYS
  -M, --maxdays MAX_DAYS        set maximim number of days before password
                                change to MAX_DAYS
  -R, --root CHROOT_DIR         directory to chroot into
  -W, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS

[root@VM_61_237_centos ~]# 

Continue reading

yum history 使用简介

说到 yum,我想很多人都再熟悉不过。但是,在日常的使用中,我们大都只用到了 yum installyum removeyum updateyum cleanyum makecache 这些跟仓库或者跟软件装卸载有关的命令。最近,我发现 yum history 这个命令也有很多实用之处,有助于我们更好地对安装包进行管理。

Continue reading