私は次のようにユーザーのumask値を変更するためにchfnを試しました。
sudo chfn -o umask=022 username
しかし、私にはこのようなエラーがあります。
chfn: Office: '=' is not allowed
また、以下のように = 記号をエスケープしようとしましたが失敗しました。
sudo chfn -o umask\=022 username
sudo chfn -o "umask=022 username"
このコマンドを使用して等号をどのように使用またはエスケープできますか?
ありがとう
答え1
chfn
/etc/passwd
4番目のフィールド(またはそれに対応する項目)の情報を変更します。ほとんどのデータは表示目的でのみ使用され、「ユーザー名またはコメントフィールド」とも呼ばれます。passwd(5)
マニュアルページ。
Debianマニュアルページchfn(1)
しかし、その一部は「会計情報」用と言われている。確かにpam_umask.so
また、それを読んで、これがあなたが望むものだと思います。マニュアルページには、等号を許可しないという内容も記載されています。
これらのフィールドにはコロンを含めないでください。とは別にその他フィールドにはコンマや等号を含めないでください。
-o, --other OTHER
ユーザーの他のGECOS情報を変更します。このフィールドは他のアプリケーションによって使用されるアカウント情報を保存するために使用され、スーパーユーザーのみを変更できます。
chfn
あなたのCentOSは他の構文に従い、「その他」部分を変更する方法を提供していないようです。 Debian でテストした結果chfn -o 'umask=022' username
は次のとおりです。
username:x:1000:1000:Full name,,,,umask=022:/home/username:/bin/bash
したがって、欠落している機能の回避策は、ファイルを手動で編集(使用)し、chfn
説明フィールドの4番目のカンマの後にvipw
追加することです。umask=022
答え2
このマニュアルページを見てください。https://www.systutorials.com/docs/linux/man/1-chfn/
オプション-o
はオフィス番号を設定することなので=
有効な番号ではないため、間違っているようです。
興味深いことに、Ubuntu 16.04では、このオプションはオフィス番号を設定するのではなく、-o
settingsのGECOSフィールドのものです。/etc/passwd
答え3
bashrcを修正して同じ効果を得ました。
vi ~/.bashrc
...
# User specific aliases and functions
umask 022
ありがとう