Linuxですべてのユーザーのumaskを見るには?

Linuxですべてのユーザーのumaskを見るには?

AIXでは、以下をumask使用してすべてのユーザーを確認できます。

cut -d : -f 1 /etc/passwd | while read ONELINE; do lsuser -a umask "$ONELINE"; done

umaskしかし、Linuxですべてのユーザーの設定を表示するには? (suその後、各ユーザーのコマンドumask?より良い方法はありますか?)

アップデート1:

su一部のRHELサーバーでは、一部のユーザーのデフォルトシェルが一時停止/終了であるため、これはすべてのユーザーに最適ではありません。

shutdown:x:6:0:shutdown;asdf;asdf;F:/sbin:/sbin/shutdown

それでは、suユーザーにこれを行うと...サーバーがダウンしますか?

アップデート2:私はsuベースではなく答えのための賞金を作りました。

ベストアンサー1

通常、umask設定ファイルを介してシステム全体に設定されます/etc/login.defs

$ grep UMASK /etc/login.defs 
UMASK           077

値はオーバーライドできますが、通常、および/etc/bashrc//etc/profileまたはユーザー$HOME/.bashrc(Bashを使用していると仮定)はそうではありません。

grep上記のファイルで「umask」を見つけたら、RHELボックスでもこの内容を確認できます。

$ grep umask /etc/bashrc /etc/profile
/etc/bashrc:    # By default, we want umask to get set. This sets it for non-login shell.
/etc/bashrc:       umask 002
/etc/bashrc:       umask 022
/etc/profile:# By default, we want umask to get set. This sets it for login shell
/etc/profile:    umask 002
/etc/profile:    umask 022

詳細はこちら:

  • /etc/bashrc

    # By default, we want umask to get set. This sets it for non-login shell.
    # Current threshold for system reserved uid/gids is 200
    # You could check uidgid reservation validity in
    # /usr/share/doc/setup-*/uidgid file
    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
       umask 002
    else
       umask 022
    fi
    
  • /etc/profile

    # By default, we want umask to get set. This sets it for login shell
    # Current threshold for system reserved uid/gids is 200
    # You could check uidgid reservation validity in
    # /usr/share/doc/setup-*/uidgid file
    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
        umask 002
    else
        umask 022
    fi
    

umaskしたがって、少なくともRHELシステムでは、002UIDが199より大きい022場合はそうでない場合(システムアカウント)です。

おすすめ記事