session_init
source
main.c
line
245 - 285
概要
static void session_init(struct vsf_session* p_sess)
処理の流れ
248 /* Get the addresses of the control connection */
249 vsf_sysutil_getpeername(VSFTP_COMMAND_FD, &p_sess->p_remote_addr);
250 vsf_sysutil_getsockname(VSFTP_COMMAND_FD, &p_sess->p_local_addr);
- tunable_anonymous_enableが有効な場合の処理
tunable_anonymous_enable (デフォルトは1)
Anonymous(匿名)ログインを許可するか否かのコントロールをします。有効にした場合、ユーザ名"ftp"も"anonymous"も共にAnonymous(匿名)ログインとして承認されます。
253 {
254 const struct vsf_sysutil_user* p_user =
255 vsf_sysutil_getpwnam(tunable_ftp_username);
256 if (p_user == 0)
257 {
258 die2("vsftpd: cannot locate user specified in 'ftp_username':",
259 tunable_ftp_username);
260 }
261 p_sess->anon_ftp_uid = vsf_sysutil_user_getuid(p_user);
262 }
- tunable_guest_enableが有効の場合の処理
tunable_guest_enable (デフォルトは0)
If enabled, all non-anonymous logins are classed as "guest" logins.
A guest login is remapped to the user specified in the guest_username setting.
可能にされるなら、すべての非匿名のログインが「お客様」ログインとして分類されます。
お客様ログインはお客様_ユーザ名設定で指定されたユーザに再写像されます。
264 {
265 const struct vsf_sysutil_user* p_user =
266 vsf_sysutil_getpwnam(tunable_guest_username);
267 if (p_user == 0)
268 {
269 die2("vsftpd: cannot locate user specified in 'guest_username':",
270 tunable_guest_username);
271 }
272 p_sess->guest_user_uid = vsf_sysutil_user_getuid(p_user);
273 }
- tunable_chown_uploadsが有効な場合の処理
tunable_chown_uploads (デフォルトは0)
有効にすると、全ての匿名によるアップロードファイルはchown_usernameオプションで指定された所有者に変更されるようになります。
これは管理の、そして恐らくセキュリティの、見地から役立つといえます。
275 {
276 const struct vsf_sysutil_user* p_user =
277 vsf_sysutil_getpwnam(tunable_chown_username);
278 if (p_user == 0)
279 {
280 die2("vsftpd: cannot locate user specified in 'chown_username':",
281 tunable_chown_username);
282 }
283 p_sess->anon_upload_chown_uid = vsf_sysutil_user_getuid(p_user);
284 }
285 }
function
245 static void
246 session_init(struct vsf_session* p_sess)
247 {
248 /* Get the addresses of the control connection */
249 vsf_sysutil_getpeername(VSFTP_COMMAND_FD, &p_sess->p_remote_addr);
250 vsf_sysutil_getsockname(VSFTP_COMMAND_FD, &p_sess->p_local_addr);
251 /* If anonymous mode is active, fetch the uid of the anonymous user */
252 if (tunable_anonymous_enable)
253 {
254 const struct vsf_sysutil_user* p_user =
255 vsf_sysutil_getpwnam(tunable_ftp_username);
256 if (p_user == 0)
257 {
258 die2("vsftpd: cannot locate user specified in 'ftp_username':",
259 tunable_ftp_username);
260 }
261 p_sess->anon_ftp_uid = vsf_sysutil_user_getuid(p_user);
262 }
263 if (tunable_guest_enable)
264 {
265 const struct vsf_sysutil_user* p_user =
266 vsf_sysutil_getpwnam(tunable_guest_username);
267 if (p_user == 0)
268 {
269 die2("vsftpd: cannot locate user specified in 'guest_username':",
270 tunable_guest_username);
271 }
272 p_sess->guest_user_uid = vsf_sysutil_user_getuid(p_user);
273 }
274 if (tunable_chown_uploads)
275 {
276 const struct vsf_sysutil_user* p_user =
277 vsf_sysutil_getpwnam(tunable_chown_username);
278 if (p_user == 0)
279 {
280 die2("vsftpd: cannot locate user specified in 'chown_username':",
281 tunable_chown_username);
282 }
283 p_sess->anon_upload_chown_uid = vsf_sysutil_user_getuid(p_user);
284 }
285 }
最終更新:2009年03月01日 22:15