Top / Linux / コマンド集

hogeユーザに、次回ログイン時パスワード変更させる

# sudo passwd -e hoge

これでhogeユーザは、次回ログインしたあとにパスワード変更を求められます*1

デフォルトゲートウェイの変更

sudo route add default gw 192.168.10.1
sudo route del default gw 192.168.10.1

などでデフォゲの設定ができます。*2

ちなみに確認は

route -n

echoコマンドの件

改行などのエスケープ文字を使いたい

$ echo hoge01\\nhoge02\\n
hoge01\nhoge02\n
$ echo -e hoge01\\nhoge02\\n
hoge01
hoge02

もしくは、

$ echo -e "hoge01\nhoge02\n"
hoge01
hoge02

$

最後、改行しない

$ echo hoge
hoge
$ echo -n hoge
hoge$

Linuxのパスワード有効期限

パスワードの有効期限の設定

# chage -l root

ってコマンドで、該当ユーザのパスワード有効期限がいつかとか、パスワード変更のインターバルなどが確認できます。

# chage -M 30 root

など引数でインターバルを変更できます。これは30日後って意味。9999より大きい値を指定すると、無期限って意味になるらしい。

よくある、初回ログインしたときだけパスワードを変更させたい場合は、

# passwd -e ユーザ名

これでOK.次回ログインするときだけ、パスワード変更を促します。

Linux,UNIXで次回ログイン時にパスワードを変更させる | 俺的備忘録 〜なんかいろいろ〜

表のような結果から列を抽出する

cut コマンド | コマンドの使い方(Linux) | hydroculのメモ

日付を取得する。1週間前の日付、とかも。

Linux系

$ from=`date +"%Y%m%d" --date "7 days ago"`
$ echo $from
20141127
$ to=`date +"%Y%m%d"`
$ echo $to
20141204

MacOS系(BSD系?)

$ from=`TZ=JST-9 date -v-7d '+%Y%m%d'` 
$ echo $from
20141127
$ to=`TZ=JST-9 date '+%Y%m%d'`
$ echo $to
20141204

バイナリ値の表示。

$ cat hoge.txt 
a
$ od -tx1 hoge.txt 
0000000    61  0a                                                        
0000002
$ 

たとえば、NULL値:

$ printf "\0" > hoge.txt && od -tx1 hoge.txt
0000000    00
0000001
$ printf "\0\n" > hoge.txt && od -tx1 hoge.txt
0000000    00  0a
0000002

こんな感じ。

ログイン不可ユーザの設定を変える・戻す

 usermod -s /bin/bash apache
 su - apache    <-普通はログイン出来ないけど、出来るようになる
 exit
 usermod -s /sbin/nologin apache

cronをviで編集するための設定。

setenv EDITOR /usr/bin/vi

を設定しておく*3

フォーマットコマンド

mkfs -L Firewire /dev/sda1 -t ext3

でボリュームラベルがFirewireで/dev/sda1をext3ファイルタイプでフォーマットする。

grepで前後何行を一緒に出す

Linuxだけみたいですが

-a 後ろ何行。
-c 前後何行

ファイルの分割、結合

バイナリ

split -b 2000m hoge.bin  <-2GBごとにファイルを分ける。

テキスト

split -60000 hoge.csv <-60000行ごとにファイルを分ける

結合するときはcatですね。

cat hoge.* > hoge.new

WEBからダウンロード

wgetコマンドを使うと、コマンドライン上でファイルをダウンロードできます。たとえば

wget http://ezix.sourceforge.net/software/files/lshw-B.02.03.tar.gz

など。いままでWindowsでダウンロードしてFTPしてたので、これは便利(ていうか常識なのかな?)。

grepでor検索

egrep '(hoge | fuga)' ファイル名

属性を保持してコピー

\cp -a 

コピー先で、できる限り元のファイルの構成と属性を保持する (ディレクトリ構造体は保存しない) 。-dpR と同じ。

定期的にコマンドを実行

いわゆるcrontabです(参考)

crontab -e

でviが起動されるので、そこに記述する。記述方法は上記サイトを参考にしてください。

設定したcrontabを参照する

crontab -l

結果はたとえば

02 2 * * * /var/hoge.sh (毎日2時2分にhoge.shを実行)

Shellの条件判定方法をmanで見る

man test

xinetdのリスタート

/sbin/service xinetd restart

言語の設定

setenv LANG ja

WebSphereのプロセス参照(Solarisのみ?)

 /usr/ucb/ps -alxww | grep WebSphere

gzファイルの解凍

gzip -d hoge.gz

isoイメージマウント

mount -t iso9660  -o loop WAS5.0forLinux.iso /mnt/iso/

指定ディレクトリのサイズ

du -hs [ディレクトリ|ファイル]

オプション

-hわかりやすい単位にして表示する。
-s引数で指定したファイルの総計だけを表示する。

ユーザ追加

useradd mqm ←ユーザmqm を作成します。

グループ追加

groupadd mqbrkrs ←グループmqbrkrs を作成します。

グループにユーザを追加

usermod -G [group] [user] ←user をグループ group に追加します。
usermod -G mqm,mqbrkrs root ←root をグループmqm とmqbrkrs に追加します。
usermod -G mqm mqm ←mqm をグループmqm に追加します。

groupid: wsadmin,userid: user1 というユーザを作成する

[root@node1 root]# useradd -g wsadmin user1
[root@node1 root]# su - user1
[user1@node1 user1]$ id
uid=502(user1) gid=502(wsadmin) 所属グループ=502(wsadmin)
[user1@node1 user1]$

group1というgroupidを作成する

[root@node1 root]# groupadd  group1

user1というuseridのプライマリグループをwasgroupにする

[root@node1 root]# usermod -g wasgroup user1
[root@node1 root]# su - user1
[user1@node1 user1]$ id
uid=502(user1) gid=501(wasgroup) 所属グループ=501(wasgroup),503(user1)
[user1@node1 user1]$

user1というuseridをuser1,wasgroupというgroupに属させる

[root@node1 root]# usermod -G user1,wasgroup user1
[root@node1 root]#

引数にないgroupに属していた場合、そのgroupからは削除される*4

ユーザのパスワード変更

passwd [username]

ユーザを指定する。指定しない場合、自分のパスワードを変更する。

ユーザのuidやgidを変更したい

たとえば

uid:502(hoge),gid:502(hoge1) を
uid:506(hoge),gid:506(hoge1) に変更したい。

とします。

以下の手順でOKっぽい。。

groupmod -g 506  hoge1   <- hoge1というグループのidを506に
↑ これで、hoge1というグループのgidは506となる
   (この段階でhogeというユーザは無名のグループ(gid=502は存在しなくなるので)に属する)
usermod -g hoge1 hoge    <- hogeというユーザのgidをhoge1に(gid=506になる)
↑ これで、hogeというユーザはhoge1というグループに属する(gid=506に変更される)
usermod -u 506 hoge      <- hogeというユーザのuidを 506にする
↑ これで、hogeという名称のuidは506となった。

終わり。あ、あとはすでに作っちゃったファイルのオーナの変更が必要です。

というか、

/etc/passwd
/etc/group

の値を直接変えちまえばよい??

参考
http://blog.goo.ne.jp/gleaning/e/c96f5b71df3acb64cafa46888ce2b787

逆に、gidはそのままに表示名称を変えたい

たとえばwasgroup -> new_wasgroup と変更したい場合

# groupmod -n new_wasgroup wasgroup

この記事は

選択肢 投票
おもしろかった 45  
そうでもない 1  
  • あの、勝手に/etc/passwdを変更しても大丈夫ですか? こういう内容のサイトもありますよ。http://x68000.q-e-d.net/~68user/unix/pickup?%2Fetc%2Fpasswd -- 通りすがり? 2010-03-30 (火) 15:04:22
  • コメントありがとうございます。/etc/passwdをいじってしまって良いかは、実際に試していないのでわからないですしそうすればよいといいたいわけでもないです。。。リンクを見させていただいた限り、直接修正はNGぽいですね。。 -- きの? 2010-03-30 (火) 17:02:38
  • 仕組みを理解してればいじってもOK。Linux系はエディタでいじれるから、OK。BSD系はテキストデータじゃなくて、DBデータだから、エディタでいじるな、db系でいじればOK。んだけです。 -- ZORO? 2010-09-03 (金) 10:29:25

Top / Linux / コマンド集

現在のアクセス:55148


*1 Linuxのイメージとかを作ったときに、初期パスでログインさせるとかでつかえますね
*2 自宅に引き込んだ回線が2本とかあったりすると、もどり先が異なっててちゃんと戻んないときがあって。あ、デフォゲをそっちにしなきゃダメじゃん、なんてときがよくある、、、。
*3 bashは export EDITOR=/usr/bin/vi か
*4 つまりこの一覧にあるgroupのみに属するようになる

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-14 (火) 10:53:28 (1089d)