実行権限がないファイルの実行
実行権限がないファイルでも読み取り権限があれば、bashやsource等の引数にすれば実行できちゃう。
$ id uid=1001(test01) gid=1001(test01) groups=1001(test01) $ ls -l test.sh -rw-rw-r-- 1 test01 test01 5 Dec 9 23:24 test.sh $ ./test.sh bash: ./test.sh: Permission denied $ bash test.sh Sat Dec 9 23:24:24 JST 2023 $ ls -l /usr/bin/bash -rwxr-xr-x 1 root root 1396520 Jan 7 2022 /usr/bin/bash $ chmod 200 test.sh $ ls -l test.sh --w------- 1 test01 test01 5 Dec 9 23:24 test.sh $ bash test.sh bash: test.sh: Permission denied
予約されたユーザIDとグループID
RHELでは、1000以下のユーザーIDとグループIDをシステムユーザー、システムグループ用に予約している。使用できるユーザーIDとグループIDは/etc/login.defs
ファイルに記述されている。デフォルトでは以下の通り、ユーザーIDとグループIDの最小値は1000になっている。
$ cat /etc/login.defs | grep -e '^UID_MIN' -e '^GID_MIN' UID_MIN 1000 GID_MIN 1000
予約されているユーザーIDとグループIDは以下のファイルに記載されている。
cat /usr/share/doc/setup/uidgid
ちなみに、予約に使用されるIDの範囲は今後広がる可能性があるようで、5000番以降の番号を割り当てることが推奨らしい。5000番以降を割り当てるようにするには、前述の/etc/login.defs
のUID_MIN
とGID_MIN
の値を5000にする。
grepで使えそうな文字列
設定ファイル等でコメントアウトされていたり、改行が入っていたりして見にくい場合がある。
grepで行頭が#だったり、改行コードになっている行を省くと、設定ファイルが読みやすくなる。
cat <ファイル名> | grep -v '^#' | grep -v '^\n*$'
crontabのタイムゾーン設定
crontab -e
で設定ファイルを開き、先頭行にタイムゾーン設定(CRON_TZ=Asia/Tokyo
)を入れる。
# crontab -l CRON_TZ=Asia/Tokyo 52 11 * * * touch /root/test.txt
参考
ファイル・ディレクトリの操作と管理(Linux学習) - YouTube
第4章 ユーザーとグループの管理 Red Hat Enterprise Linux 7 | Red Hat Customer Portal