Linux:userdelで不要なユーザーアカウントを削除する

Linuxでユーザを作成した時に間違って登録してしまった場合や不要になったユーザを削除したい場合があります。
Linuxでユーザを削除するにはuserdelコマンドを使用します。
メールアカウントを削除する場合などはユーザのメールボックスも削除したいので、ユーザのホームディレクトリごと削除するのがいいと思います。
userdelコマンドのオプションで「-r」を指定することでユーザのホームディレクトリも削除することが可能です。
また、ユーザの削除を行う時に「-r」オプションを指定しないとユーザのホームディレクトリがサーバに残ってしまい、同じ名前のユーザを作成した場合にディレクトリが存在する可能性がありますので不要であれば削除した方がいいと思います。
下記にuserdelコマンドの説明と使用例を記載します。


userdelコマンド
Linuxサーバーに登録されているユーザーアカウントを削除します。
ログインしているユーザーを削除することはできません。
オプションで「-r」を指定することでユーザのホームディレクトリも同時に削除することができます。


■ 書式(オプション)

・「-r」オプションなしの場合

userdel [ユーザー名]

・「-r」オプションありの場合

userdel -r [ユーザー名]

■ 使用例

hoge1ユーザを削除する場合です。

userdel hoge1

hoge1ユーザが削除されます。
しかし、ユーザのホームディレクトリはサーバに残ったままになります。

hoge2ユーザをホームディレクトリごと削除します。

userdel -r hoge2

hoge2ユーザとhoge2ユーザのホームディレクトも同時に削除されます。

※複数のユーザが同じホームディレクトリに設定されている場合があるので注意が必要です。
※ユーザを削除する場合は対象のユーザの設定内容をしっかり確認してから削除することをお勧めします。

Linux:FTPユーザごとにホームディレクトリを指定する(vsftpd)

FTPに接続するユーザごとにホームディレクトリを指定し、上位階層へのアクセスを拒否する設定を記載します。
FTPサーバ(vsftpd)を使用しており、FTPユーザごとにアクセス制限をかける必要があったので、その時に行った際の手順やvsftpdの設定内容などをメモします。
下記の設定を行うことでFTPユーザが上のディレクトリに移動できなくなりました。

■ FTPサーバ(vsftpd

FTP(ファイル転送)サーバの一つです。
yumでインストールすることができます。


■ 設定手順

1.FTPで使用するユーザを作成します。

ユーザの作成については、Linux:Linuxのadduserコマンドで新規ユーザを作成する
で紹介しています。

2.ユーザが作成されたことを確認します。

3.vsftpdディレクトリに移動します。

# cd /etc/vsftpd/

vsftpdディレクトリ内を確認すると下記のようなファイル・ディレクトリが存在します。

# ls
chroot_list
ftpusers
user_list
vsftpd.conf
vsftpd_conf_migrate.sh

サーバによって存在しないファイルもあります。
その場合は必要なファイル、ディレクトリを作成します。

4.vsftpd_user_confディレクトリを作成する

vsftpd.confの設定に下記の内容を記載します。
ユーザごとの設定ファイルを参照する為のパスを記載します。

user_config_dir=/etc/vsftpd/vsftpd_user_conf

vsftpd_user_confディレクトリを作成します。

# mkdir /etc/vsftpd/vsftpd_user_conf

vsftpdディレクトリ内を確認します。

# ls
chroot_list
ftpusers
user_list
vsftpd.conf
vsftpd_conf_migrate.sh
vsftpd_user_conf

vsftpd_user_confディレクトリが作成されたことが確認できます。

5.追加したユーザの名前のファイルを作成し、ホームディレクトリを設定します。

※FTPの時だけ別のホームディレクトリを指定する場合に記載します。

hogeユーザを作成した場合

# vi vsftpd_user_conf/hoge

新規作成したファイルにホームディレクトリの設定をします。

local_root=/var/www/html/hoge

6.user_listに新規ユーザを追加し、FTP接続を可能にします。

user_listはvsftpd.confの設定により、意味が異なります。

vsftpd.conf設定が下記の場合

userlist_enable=YES
userlist_deny=NO

user_listファイルを編集します。

# vi /etc/vsftpd/user_list

user_listファイルにユーザ名を設定します。

user
hoge

7.追加したユーザが指定したディレクトリより上の階層にいけないように設定します。

vsftpd.conf設定が下記の場合

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

chroot_listファイルを編集します。

# vi chroot_list

chroot_listに追加したユーザを設定します。

hoge

8.vsftpdを再起動します。

# /etc/init.d/vsftpd restart
vsftpd を停止中:                                           [  OK  ]
vsftpd 用の vsftpd を起動中:                               [  OK  ]

※vsftpd.confを変更していない場合は再起動しなくてもOKです。

9.追加したユーザでFTPに接続します。

上記で指定した/var/www/html/hogeにアクセスします。
また、上位ディレクトリへアクセスできないことが確認できます。

※ファイル、ディレクトリが編集できない場合は、ファイル、ディレクトリの所有者・所属グループを変更する必要があります。


■ ftpusersファイル

アクセス制御ファイルの一つです。
user_listでユーザを設定していてもftpusersに記載されているユーザーはFTPサーバーにアクセスできません。
ユーザーがFTPへ完全に接続させないようにする場合はftpusersにユーザを記載します。


■ user_listファイル

vsftpd.confの設定により、user_listの意味が異なります。
下記にvsftpd.confの設定内容を記載します。

「user_listファイルに追加したユーザーのアクセスを禁止する場合」

userlist_enable=YES
userlist_deny=YES

「user_listファイルに追加したユーザーのアクセスを許可する場合」

userlist_enable=YES
userlist_deny=NO

■ chroot_listファイル

vsftpd.confの設定で有効な場合、制限をかけたいユーザーを設定できます。
設定したユーザーは上位ディレクトリへの移動ができなくなります。
chroot_list_enableをYESにした場合、chroot_list_fileで指定したchroot_listファイルは必須になります。
ファイルが存在しない場合、全てのユーザがログインできなくなるので、ユーザいない場合でも、空のファイルを作る必要があります。

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

Linux:Linuxのadduserコマンドで新規ユーザを作成する

Linuxでユーザを作成する場合に使用するコマンドは「adduser」と「useradd」の二つのコマンドがあります。
adduserコマンドとuseraddコマンドはどちらを使ってもユーザを作成することができます。
違いはユーザを作成するときの手順が違うようです。
私はadduserコマンドを使用していたのでadduserコマンドを使ってユーザを作成した際の方法を記載します。

adduserコマンド
ユーザーを作成します。
ユーザのホームディレクトリやグループなど下記のオプションで指定することができます。

■ オプション

「-u(–uid)」
ユーザIDを指定してユーザを作成します。
省略した場合、自動でユーザIDが設定されます。

「-g(–gid)」
グループIDを指定してユーザを作成します。
指定するグループは存在しないとエラーで怒られます。
省略した場合、自動でグループIDが設定されます。

「-d(–home)」
ユーザのログイン時のホームディレクトリを指定できます。
省略した場合、システムが規定で設定しているホームディレクトリが設定される。

「-s(–shell)」
ユーザのログインシェルを指定します。
SSHでログインできないユーザの作成は「/sbin/nologin」に設定します。
またログインできるユーザの作成は「/bin/bash」を設定します。

■ 書式

adduser -u [ユーザー] -g [グループ] -d [ホームディレクトリ] -s [ログインシェル] [ユーザ名]

または

adduser --uid [ユーザー]  --gid [グループ] --home [ホームディレクトリ] --shell [ログインシェル] [ユーザ名]

オプションの値は省略可能です。

■ 使用例

hogeユーザーを作成します。

# adduser --shell /sbin/nologin --home /var/www/html hoge
adduser: warning: the home directory already exists.
Not copying any file from skel directory into it.

※ホームディレクトリが存在している場合、警告が出ますがユーザを作成することが可能です。

ユーザー一覧を確認すると下記のように設定されます。

hoge:x:512:512::/var/www/html/:/sbin/nologin

ユーザーにパスワードを設定する場合は下記のようにします。

# passwd hoge
Changing password for user hoge.
New UNIX password:(パスワード入力)
Retype new UNIX password:(パスワード再入力)
passwd: all authentication tokens updated successfully.

「passwd: all authentication tokens updated successfully.」と表示されれば成功です。

Linux:chownでファイルやディレクトリの所有者を変更する

Linuxchownコマンドの使い方をいつも忘れてしまうのでメモします。
FTPでファイルやディレクトリを変更しようとした時に、所有者や所有グループが違うため編集できないことがあります。
その場合はLinuxのchownコマンドで所有者や所有グループを変更することで編集可能になります。(編集できない理由が所有権の場合)
chownコマンドを使用した時の方法を下記に記載します。

chownコマンド

ファイルやディレクトリの所有者、所属グループを変更します。
所有者の指定はユーザ名、グループ名またはユーザーID、グループIDで指定できます。
所有者を変更できるユーザは、スーパーユーザかそのファイルの所有者に限られます。

chown [オプション] [ユーザ]:[グループ] [ファイルやディレクトリ]

ディレクトリ以下全てのファイル、ディレクトリの所有者や所有グループを変更する際はオプションで「-R」を指定します。

chown -R [ユーザ]:[グループ] [ファイルやディレクトリ]

chownコマンドのオプションは他にも下記のものがあります。

-c:所有者が変更されたファイルのみ詳細に表示します。
-f:所有者を変更できない場合、エラーメッセージを表示しません。
-v:所有者の変更を詳細に表示します。
-R:ディレクトリとディレクトリ以下のファイルを再帰的に変更します。

■ 使用方法

hoge.txtの所有者をhogeユーザに変更する場合

chown hoge:hoge hoge.txt

hogeディレクトリの所有者をユーザID「501」のユーザに変更する場合

chown 501:501 hoge/

またhogeディレクトリ以下全てのファイル、ディレクトリの所有者を変更する場合

chown -R 501:501 hoge/

Dreamweaver:DreamweaverでCakePHPのctpファイルを開く

DreamweaverでCakePHPのctpファイルを開く場合は、Dreamweaverの設定でctpファイルを認識させる必要があります。
今回はDreamweaverでctpファイルを認識させる方法。また、phpと同じようにDreamweaver上でctpファイルを色付けして表示する方法も記載します。
※DreamweaverCS5.5を使用した場合の設定です。

■ [Extensions.txt]の編集

下記のフォルダを参照します。

C:\Users\[ユーザー名]\AppData\Roaming\Adobe\Dreamweaver CS5.5\ja_JP\Configuration

参照したフォルダに「Extensions.txt」というファイルがあるので、「CTP」を追加します。(16行目)

PHP,PHP3,PHP4,PHP5,TPL,PHP-DIST,PHTML,CTP:PHP Files

dreamweaver_ctp1

■ [MMDocumentTypes.xml]の編集

下記のフォルダを参照します。

C:\Users\[ユーザー名]\AppData\Roaming\Adobe\Dreamweaver CS5.5\ja_JP\Configuration\DocumentTypes

参照したフォルダに「MMDocumentTypes.xml」というファイルがあるので、「documenttype id=”PHP_MySQL”」の行に「ctp」を追加します。(75行目)

<documenttype id="PHP_MySQL" servermodel="PHP MySQL" internaltype="Dynamic" winfileextension="php,php3,php4,php5,phtml,ctp" macfileextension="php,php3,php4,php5,phtml,ctp" file="Default.php" writebyteordermark="false" mimetype="text/html">

dreamweaver_ctp2

■ Dreamweaverの環境設定で拡張子「.ctp」を登録

Dreamweaverのメニューバー[編集]から[環境設定]を選択します。ダイアログが表示されるので[ファイルタイプ/エディター]を選択し、[コードビューで開く]に「.ctp」を追加します。
OKボタンをクリックすればDreamweaverでctpファイルを認識し、phpと同じように色付けして表示されるようになります。

dreamweaver_ctp3